单链表的创建及操作

单链表的创建及操作

ID:18970102

大小:76.50 KB

页数:6页

时间:2018-09-27

单链表的创建及操作_第1页
单链表的创建及操作_第2页
单链表的创建及操作_第3页
单链表的创建及操作_第4页
单链表的创建及操作_第5页
资源描述:

《单链表的创建及操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、山东师范大学实验报告课程:数据结构班级:2013级1班实验序号:116王海峰姓名:王海峰学号:201311010116实验日期:2014.3.25题目:单链表的创建及操作一、实验目的和要求(1)熟悉C语言的上机环境,进一步掌握C语言的结构特点。(2)掌握线性表的顺序存储结构的定义及基本运算二、实验环境Windows8,vc++6.0三、实验内容及实施实验内容1、创建一个带头结点的单链表(头指针为head),且遍历此链表(输出链表中各结点的值);2、查找单链表中的第i个结点,并输出结点元素的值;3

2、、在单链表中的第i个结点前插入一个结点值为e的正整数(从外部输入);4、删除单链表中的第j个结点;*5、将单链表中的各结点就地逆序(不允许另建一个链表);【程序】#include#include#include//数据结构作业201311010116计一王海峰structLinked{intdate;//定义结点的数据域structLinked*next;//定义结点的指针域};voidInitList(structLinked*hea

3、d);//建立单链表voidputout(structLinked*head);//输出单链表voiddel(structLinked*head);//删除元素voidchange(structLinked*head);//就地逆序voidfree(structLinked*head);//释放内存voidsearch(structLinked*head);//查找元素voidInsert(structLinked*head);//插入元素intmain(){Linked*head;head=(

4、Linked*)malloc(sizeof(Linked));//为头指针分配空间if(head==NULL)exit(1);//建立单链表InitList(head);//查找第i个结点search(head);//插入结点Insert(head);printf("插入后的链表为:");putout(head);//删除第j个结点del(head);printf("删除后的链表为:");putout(head);//单链表就地逆序change(head);printf("逆序后的单链表为:

5、");putout(head);//释放内存free(head);printf("");return0;}//建立单链表voidInitList(structLinked*head){Linked*p,*q;p=(Linked*)malloc(sizeof(Linked));if(p==NULL)exit(1);q=(Linked*)malloc(sizeof(Linked));if(q==NULL)exit(1);head->next=NULL;//将头指针置空charch;//判断数

6、据是否输入结束q=head;printf("请输入一组数据");//动态创建链表while((ch=getchar())!='')//判断数据是否输入结束{ungetc(ch,stdin);p=(Linked*)malloc(sizeof(Linked));if(p==NULL)exit(1);scanf("%d",&p->date);//输入数据p->next=NULL;//后继置空q->next=p;//连接前驱结点q=p;}}//查找voidsearch(structLinked*

7、head){Linked*p,*q;p=(Linked*)malloc(sizeof(Linked));//为工作指针分配空间if(p==NULL)exit(1);inti,k;printf("输入要查找的结点序数:");scanf("%d",&i);p=head->next;for(k=1;knext;printf("%d",p->date);//此时p为i的后继结点}//单链表就地逆序voidchange(structLinked*head){structLink

8、ed*t;//临时指针Linked*p,*q;t=p=q=head->next;while(t->next->next)t=t->next;while(q->next)q=q->next;while(q->next!=p&&p!=q){head->date=p->date;//p与q交换数据域p->date=q->date;q->date=head->date;q=t;t=head->next;while(t->next!=q)t=t->next;p=p->next;}}//释放内存空间void

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

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

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