收藏 分享(赏)

用链表将数字升序排序.doc

上传人:wspkg9802 文档编号:6820298 上传时间:2019-04-23 格式:DOC 页数:4 大小:50.50KB
下载 相关 举报
用链表将数字升序排序.doc_第1页
第1页 / 共4页
用链表将数字升序排序.doc_第2页
第2页 / 共4页
用链表将数字升序排序.doc_第3页
第3页 / 共4页
用链表将数字升序排序.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、2 问题分析:将链表中的元素进行升序排序,再用查找找出排在最后的一位输出该元素值算法描述:Step1 p 为 head 后的头结点,r 指向 p 的后继结点Step2 构造只有一个结点的有序表即将 p 结点与 r 结点断开Step3p 后移到 r,如果 p 不为空链表,r 后移一个,将设置为头指针Step4 当 q 后面不为空链表并且 q 所指结点中的数小于p 结点中的数时,q 由头指针指向第一个结点,否则执行 step7Step5p 结点与后面结点断开,q 结点与 p 结点相链接,p 指针指到 r 位置Step6 重复 step3 到 step5 直至最后一个结点Step7 将 p 所指结点

2、插到 head 后面,重复 step3 到 step5直至最后一个结点Step8 输出最后一个链表的元素值源程序:#include/cout,cin#include“process.h“/exit()#define Max 20typedef struct int exp;PolyArrayMax;struct PolyNodeint exp;PolyNode *next;class Polyprivate:public:PolyNode *head;Poly();/构造函数,建立空链表Poly();/析构函数,释放链表void Create(PolyArray a,int n);/键盘输入,

3、创建数值链表void Disp();/多项式显示void Sort();/有序表排序int GetMax();Poly:Poly() /创建一空链表head=new PolyNode;head-next=NULL;Poly:Poly()/释放链表所占空间PolyNode *p;while(head!=NULL)/从头结点开始,依次释放结点p=head;head=head-next;delete p;head=NULL;/头结点指向空void Poly:Disp ()PolyNode *p;p=head-next;while(p!=NULL)coutexpnext ;coutexp =ai.ex

4、p;s-next =NULL;r-next =s;r=s;void Poly:Sort()PolyNode *p,*q,*r;p=head-next ;if(p!=NULL)r=p-next ;/r 指向 p 的后继结点p-next =NULL;/构造只有一个结点的有序表p=r;while(p!=NULL)r=p-next;q=head;while(q-next!=NULL /在有序表中插入*p 的前驱结点*qp-next =q-next ;/*p 插入到*q 之后q-next =p;p=r;int Poly:GetMax()PolyNode *p;p=head;while(p-next!=NULL)p=p-next;return p-exp;void main()Poly LA;PolyNode *p;int x;/p1=LA.head;PolyArray a=0,7,6,0;LA.Create (a,4);coutnext;delete p;运行截图:网络工程 102 沈清 1013072058

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报