ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:55.48KB ,
资源ID:6163835      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6163835.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验二 单链表基本操作的实现Word文件下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

实验二 单链表基本操作的实现Word文件下载.docx

1、#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType; Link head,tail; int len;Position MakeNode_L(Link &p,ElemType e) /创建结点 p=(Link)malloc(sizeof(LNode); if(!p) return ERROR; p-data=e;next=NULL; return p;void FreeNode_L(Link &q) /释放结点 free(q);Status InitList_L(LinkList &L)

2、 /初始化L为一个带头结点的空链表,头尾指针指向头结点,表长赋 ElemType e; e=-1;/实际应用中此初始化语句需要修改MakeNode_L(L.head,e)return ERROR;/开辟头结点 L.tail=L.head;L.len=0; return OK;/InitList_LStatus DestroyList_L(LinkList &L)/销毁链表L Link p; while(p=L.head-next)/依次释放有序链表中第一个元素至最后一个元素所占用空间; L.head-next=p-next; free(p); free(L.head); L.head=NULL

3、;L.tail=NULL; coutendl while(p) q=p- p=q; L.len=0;Status InsFirst_L(LinkList &L,Link s) /在首元素前插入一个结点 s-next=L.head-L.head-next) L.tail=s; L.head-next=s; L.len+;Status DelFirst_L(LinkList &L,Link h,Link &q) /删除首结点 h=L.head; q=L.head- if(q) h-next=q- q- if(!h- L.tail=h; L.len-; return OK; else return

4、ERROR;Status Append_L(LinkList &L,Link s) /将两个链表跟一个字符串连接起来 Link q;next=q=s; L.tail- while(q- q=q- L.tail=q;Position Remove_L(LinkList &L,Link &q) /删除尾结点 p=L.head;next) coutnext!=L.tail) p=p- q=L.tail; L.tail=p; return q;Status InsBefore_L(LinkList &p,Link s) /在p指向的结点前插入一个结点 q=L.head; if(p=L.head) co

5、ut=p) q=q- s-next=p;Status InsAfter_L(LinkList &p,Link s) /在p指向的结点后插入一个结点 if(p=L.tail) L.tail=s;Status SetCurElem_L(Link &p,ElemType e) /改变p指向的结点的内容ElemType GetCurElem_L(Link p) /获取p指向的结点的内容 return p-data;int ListLength_L(LinkList L) /获取单链表的长度值 return L.len;Status ListEmpty_L(LinkList L) /判断单链表是否为空,

6、是返回,否返回 if(L.head=L.tail) return TRUE; else return FALSE;Position GetHead_L(LinkList L) /获取头指针的地址 return L.head;Position GetLast_L(LinkList L) /获取尾指针的地址 return L.tail;Position PriorPos_L(LinkList L,Link p) /获取p的前驱 if(p=L.head-next) return NULL;Position NextPos_L(LinkList L,Link p) /获取p的后继p-Status Lo

7、catePos_L(LinkList L,int i,Link &p) /查找p在单链表中的位置i int j; if(i1) return ERROR; for(j=1;jStatus compare(ElemType x,ElemType y) /比较函数 if(x=y) return 1; return 0;Status LocateElem_L(LinkList L,ElemType e,Link &p) /返回跟e相同的值,没有的话返回空指针 int i=0; do i+; while(p&!compare(p-data,e); if(p) couti visit(p-data);S

8、tatus ListInsert_L(LinkList &L,int i,ElemType e) /在第i个位置后插入一个元素 Link p,s; s=(Link)malloc(sizeof(LNode);Status ListDelete_L(LinkList &L,int i) /删除第i个元素的结点 if(iL.len) return ERROR;i-1;next- L.len-;Status MergeList_L(LinkList La,LinkList Lb,LinkList &Lc) /将两个字符串连接起来 Link p,q,t; p=La.head- q=Lb.head- wh

9、ile(p&q) if(p-datadata) MakeNode_L(t,p- InsFirst_L(Lc,t); else MakeNode_L(t,q- while(p) MakeNode_L(t,p- InsFirst_L(Lc,t); while(q) MakeNode_L(t,q-【测试数据及实验结果】int main() LinkList la,lb,lc; Link p,q,s,k,t; InitList_L(la); InitList_L(lb); InitList_L(lc);建立一个有个数据的顺序表La,各节点值依次为:,4,6,8,10,12,.,38,40- for(i

10、nt i=20;i=1;i-) MakeNode_L(p,2*i); InsFirst_L(la,p); q=la.head-setw(3)删除,节点- ListDelete_L(la,8); ListDelete_L(la,30);表长为:la.len将La和Lb合并为线性表Lc MergeList_L(la,lb,lc);输出La,Lb,Lc的以及各表的表长 coutq=lc.tail;while(q)coutq=PriorPos_L(lc,q);清空线性表La,Lb;输出La,Lb的表长lb.lenlc.len ClearList_L(la); ClearList_L(lb); retu

11、rn 0;【实验小结】举例说明求解什么样的问题用顺序存储,什么样的问题用链式存储较好?答:使用顺序存储结构的情况: (1)空间利用率较高; (2)存取某个元素速度快; (3)插入元素和删除元素存在元素移动,速度慢,耗时; (4)有空间限制,当需要存取的元素个数可能多于顺序表的元素个数时,会出现溢出问题.当元素个数远少于预先分配的空间时,空间浪费巨大。在存取元素频繁,但删除或插入操作较少的情况宜用顺序表。例如建立一个班学生的资料,一般学生人数变动较少,而对资料的调用较多,股宜用顺序表。使用链式存储结构的情况: (1)占用额外的空间以存储指针(浪费空间); (2)存取某个元素速度慢; (3)插入元素和删除元素速度快; (4)没有空间限制,存储元素的个数无上限,基本只与内存空间大小有关。【源代码说明】1文件名:.cpp2操作说明:只需使用visual c+6.0软件将其打开,点击运行即可!

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2