数据结构算法——Visual C++ 6.0程序集 第2章

数据结构算法——Visual C++ 6.0程序集 第2章

ID:40247157

大小:629.00 KB

页数:72页

时间:2019-07-29

数据结构算法——Visual C++ 6.0程序集 第2章_第1页
数据结构算法——Visual C++ 6.0程序集 第2章_第2页
数据结构算法——Visual C++ 6.0程序集 第2章_第3页
数据结构算法——Visual C++ 6.0程序集 第2章_第4页
数据结构算法——Visual C++ 6.0程序集 第2章_第5页
资源描述:

《数据结构算法——Visual C++ 6.0程序集 第2章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构算法VisualC++6.0程序集侯识忠等编著中国水利水电出版社第二章链式存储结构的表,堆栈和队列2、0单链表的链式表示和实现//单链表的类定义linklist3.h#ifndeflinklist3H#definelinklist3H#defineLEN30//定义ElemType为inttypedefintElemType;//单链表中结点的类型typedefstructLNode{ElemTypedata;//值域LNode*next;//指针域}LNode;classLinkList{LNode*hea

2、d;public://不带形参构造函数LinkList();//带一个形参构造函数LinkList(int);//带三个形参构造函数,n是初始化元素个数,m是基//本数,mark=0不排序,mark>0升序,mark<0降序LinkList(intn,intm,intmark=0);//复制构造函数LinkList(LinkList&HL);//析构函数~LinkList();//清空单链表voidClearList();//求单链表长度intListSize();//检查单链表是否为空boolListEmpty()

3、;//返回单链表中指定序号的结点值ElemTypeGetElem(intpos);//遍历单链表voidTraverseList(voidf(ElemType&));//从单链表中查找元素boolFindList(ElemType&item);//更新单链表中的给定元素boolUpdateList(constElemType&item,ElemTypee);//向单链表插入元素,mark=0插在表首,否则插在表尾voidInsertList(ElemTypeitem,intmark);//从单链表中删除元素,mark

4、为要删除的第几个元素boolDeleteList(ElemType&item,intmark);//对单链表进行有序排列mark>0升序,否则降序voidpailie(intmark=1);//单链表la和lb的元素按值非递减排列,两个单链表//合并后的链表也是一个有序的voidMergeList_L(LinkList&la,LinkList&lb);//对单链表进行有序输出,mark=0不排序,mark>0升序,mark<0降序voidOrderOutputList(intmark=0);};#endif//单链表

5、的实现linklist3.cpp#include"linklist3.h"LinkList::LinkList()//不带形参构造函数{head=newLNode;head->next=NULL;}LinkList::LinkList(intd1)//带一个形参构造函数{head=newLNode;head->next=newLNode;head->next->data=d1;head->next->next=NULL;}//带三个形参构造函数LinkList::LinkList(intn,intm,intmark)

6、{inti,j;ElemTypea[LEN+1];for(i=1;i<=n;i++)a[i]=(m+rand())%100;for(i=1;i0&&a[j]>a[j+1]

7、

8、mark<0&&a[j]data=a[i];p->next=q;p

9、=p->next;}p->next=NULL;}LinkList::LinkList(LinkList&HL)//复制构造函数{head=newLNode;head->next=NULL;LNode*p2=HL.head->next,*p1=head,*q;while(p2){q=newLNode;q->data=p2->data;p1->next=q;p1=q;p2=p2->next;}p1->next=NULL;}LinkList::~LinkList()//析构函数{LNode*p=head->next,*q;

10、while(p){q=p->next;free(p);p=q;}}voidLinkList::ClearList()//清空单链表{LNode*p=head->next,*q;while(p){q=p->next;free(p);p=q;}head->next=NULL;}intLinkList::ListSize()//求单链表长度{LNod

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。