数据结构链表c语言实现

数据结构链表c语言实现

ID:22956927

大小:189.50 KB

页数:13页

时间:2018-11-02

数据结构链表c语言实现_第1页
数据结构链表c语言实现_第2页
数据结构链表c语言实现_第3页
数据结构链表c语言实现_第4页
数据结构链表c语言实现_第5页
资源描述:

《数据结构链表c语言实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、WORD文档下载可编辑数学与信息技术学院2016~2017(下)学年计科专业2015级《数据结构》实验报告2学号:2015201018姓名:汪继超实验名称线性表的链式存储结构完成时间一.实验目的1.掌握单链表的概念及其各种运算的原理。2.通过对单链表的建立及几种基本运算等的算法实现,掌握线性表的链式存储结构、各种运算和指针的表示及应用等内容。初步掌握运用链式结构的编程和调试程序的能力。3.用C语言实现并上机调试通过,认真填写实验报告二.实验要求4.采用链式存储结构完成。5.注意类C和C的转换。6.上机调

2、试通过,认真书写实验报告。三.实验原理链表是一种动态存储结构。线性表的链式存储结构的特点是用一组任意的存储单元(可以是连续的,也可以是不连续的)存放线性表的数据元素。线性表的一个结点由两个域组成:存放自身的数据和存放直接后继结点存储位置的指针域。用指针相连接的结点序列称为链表,若逻表中每个结点只包含一个指针域,则此链表为线性链表或单链表。通常链表中的每个结点可以有若干个数据域和多个链域。我们常用C语言中的“指针”类型来描述线性链表。四.实验内容(1)定义函数create_linklist():建立一个具

3、有n个结点的单向链表L,要求返回表头指针;(2)定义函数count_node():统计结点个数,要求以表头指针作为调用函数,返回结点个数;(3)专业资料整理分享WORD文档下载可编辑定义函数insert_node():在链表L的第I个结点前插入一个结点,要求以表头指针作为调用函数,无返回值;(1)定义函数delete_node():删除链表L的第I个元素,要求以表头指针作为调用函数,无返回值;(2)定义函数print_node():输出单链表;(3)以上每次操作结束,输出单链表,要求以表头指针作为调用函

4、数,无返回值。实验过程:#include#include#include#includetypedefintElemType;typedefstructLnode{ElemTypedata;structLnode*next;}Lnode,*LinkList;voidprint_node(LinkListL);voidcolor(constunsignedshortcolor1)//颜色函数{if(color1>=0&&col

5、or1<=15)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color1);elseSetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);}LinkListcreate_linklist(LinkListL)//建立链表L,返回表头指针;{inti,n;Lnode*p,*q;//L为头指针,p为新元素指针,q为表尾指针q=L;L->next=NULL;color(13);p

6、rintf("请输入您要创建的数据条数:");scanf("%d",&n);printf("请输入数据:");for(i=0;idata);q->next=p;专业资料整理分享WORD文档下载可编辑q=p;}fflush(stdin);//清空在此前输入缓冲区q->next=NULL;printf("已创建数据:");print_node(L);color(10);returnL;}

7、voidprint_node(LinkListL)//打印{Lnode*p;p=L->next;while(p){printf("%5d",p->data);p=p->next;}printf("");}intcount_node(LinkListL)//统计{intcount=0;Lnode*p;p=L->next;while(p){p=p->next;count++;}color(13);printf("统计得总共记录为:%d条",count);color(10);returncount

8、;}voidinsert_node(Lnode*L,inti,ElemTypex,intcount)//插入;{Lnode*p,*q;intk,s;count=count_node(L);color(13);专业资料整理分享WORD文档下载可编辑printf("链表当前数据:");print_node(L);color(10);printf("请输入插入的位置和元素,以空格隔开:");scanf("%d%d",&k,&s);colo

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

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

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