实验二链表的基本操作

实验二链表的基本操作

ID:12032510

大小:137.50 KB

页数:6页

时间:2018-07-15

实验二链表的基本操作_第1页
实验二链表的基本操作_第2页
实验二链表的基本操作_第3页
实验二链表的基本操作_第4页
实验二链表的基本操作_第5页
资源描述:

《实验二链表的基本操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二链表的基本操作学号:0700710319姓名:梁浩然实验日期:2009年4月25日1、实验目的(1)学会单链表结点的定义(2)掌握单链表的基本运算,熟悉对单链表的一些基本操作和具体函数的定义。(3)加深对链表的理解,逐步培养解决实际问题的编程能力。2、实验要求(1)熟练掌握链表的存储结构及其基本操作。(2)理解所给出的算法,掌握链表在实际中的应用。(3)将上机程序调试通过,并能独立完成一至两个拓展题目。3、实验内容从键盘输入数据,创建一个初始链表。通过调用定义的基本操作函数来实现单链表上的插入、删除元素等操作。调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证

2、输出的结果。加深对有关算法的理解。4、实验方法第一步:定义单链表的存储结构。第二步:编写单链表操作的具体函数定义。第三步:使用定义的单链表并调用单链表的一些操作,实现具体运算。具体函数的定义有:1)insert(L,i,x)在单链表的第i个元素之前插入一个新元素x.2)deletet(L,i)删除单链表的第i个元素。3)listprint(L)输出单链表。5、实验步骤所给实例程序经调试修改如下:#include"stdio.h"#include"malloc.h"/*包含动态分配内存函数*/#defineNULL0#defineTRUE1#defineFALSE0typede

3、fintelemtype;typedefstructnode/*链表结点类型定义*/{elemtypedata;/*结点数据域*/structnode*next;/*结点的指针域*/}linklist;linklist*creatlist()/*创建链表函数-以按下任意建开始创建,以输入字符'?'表示结束标志*/{charch;intx;linklist*head,*r,*p;p=(linklist*)malloc(sizeof(linklist));head=p;p->next=NULL;r=p;ch=getchar();while(ch!='?'){scanf("%d",

4、&x);p=(linklist*)malloc(sizeof(linklist));p->data=x;p->next=NULL;r->next=p;r=r->next;ch=getchar();}return(head);}intlocate(linklist*head,elemtypek)/*定位检索函数-如链表中存在值为k的结点,则返回真,否则返回假*/{linklist*s;s=head->next;while(s!=NULL)if(s->data!=k)s=s->next;elsereturnTRUE;returnFALSE;}voidinsert(linklist

5、*head,inti,elemtypex)/*在链表head的第i个位置插入元素x*/{linklist*s,*p;intj;p=head;j=0;while(p->next&&jnext;j++;}if(!p

6、

7、j>i-1)printf("error!");s=(linklist*)malloc(sizeof(linklist));if(!s)printf("overflow!");s->data=x;s->next=p->next;p->next=s;}voiddelete1(linklist*head,inti)/*删除链表的第i个结点*/{int

8、j=0;linklist*p,*s,*q;p=head;j=0;while((p->next!=NULL)&&(jnext;j++;}if(p->next!=NULL){q=p->next;p->next=p->next->next;free(q);}elseprintf("illegaldeleteposition,deletefailed!");}voidprint(linklist*head)/*打印出链表head中各个结点的值*/{linklist*p;p=head->next;while(p!=NULL){printf("%d",p->dat

9、a);p=p->next;}printf("");}voidmain()/*主函数*/{linklist*head;/*定义指向链表的指针head*/intx;inti,j;printf("pleaseinputtheinitialnodeandstartbyanykey('?'execpt)endwith'?'");head=creatlist();printf("wehavecreatedalinklistasfollow:");print(head);printf("nowstarts

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

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

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