数据结构单链表的插入和删除!

上传人:飞*** 文档编号:43517396 上传时间:2018-06-06 格式:DOC 页数:5 大小:153KB
返回 下载 相关 举报
数据结构单链表的插入和删除!_第1页
第1页 / 共5页
数据结构单链表的插入和删除!_第2页
第2页 / 共5页
数据结构单链表的插入和删除!_第3页
第3页 / 共5页
数据结构单链表的插入和删除!_第4页
第4页 / 共5页
数据结构单链表的插入和删除!_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据结构单链表的插入和删除!》由会员分享,可在线阅读,更多相关《数据结构单链表的插入和删除!(5页珍藏版)》请在金锄头文库上搜索。

1、实验二报告:关于链表的插入和删除第 1 页 共 5 页 4/23/2018数据结构数据结构 课程实验报告课程实验报告 (二)(二)实验名称:单链表的插入和删除!实验名称:单链表的插入和删除!一、实验目的一、实验目的通过单链表的插入和删除实验,使学生深入了解单链表的算法,并能在 C语言的环境下,对单链表各项操作做比较深入的理解!二、实验内容与实验步骤二、实验内容与实验步骤 问题描述:问题描述:单链表的数据域是长度不小超过 N 的字符串,且不充许重复的串插入表 中。删除操作是根据输入的字符串,先找到相应的结点,后删除之。 基本要求:基本要求:设计程序实现以下功能: 建立一个数据域是长度不小超过 n

2、 的字符串的单链表; 将一指定字符串插入到单链表的指定位置,不许有重复; 将单链表中一指定字符串剔除。 测试数据:测试数据: 取 n=4,当建立字符串单链有序表为“Apr” “Jan” “Jul” “Jun” “Mar” “May”时,依次插入“Feb” “Aug” ,再依次删除“Mar” “Jul” 。 三、附录:程序:三、附录:程序: #include “stdio.h“ #include “malloc.h“ #include “string.h“#define L sizeof(lnode) typedef struct nodechar data4;struct node * nex

3、t; lnode,*linklist;linklist createL( )linklist H=NULL;lnode *p,*r=H;while (1)p=(lnode*)malloc(L);scanf(“%s“,p-data);实验二报告:关于链表的插入和删除第 2 页 共 5 页 4/23/2018if(strcmp(p-data,“exit“)=0) break;if(H=NULL) H=p; r=p;else r-next=p;r=p; r-next=NULL;return H;linklist insertL(linklist H )lnode *p,*q=H-next,*r=H;

4、p=(lnode*)malloc(L);printf(“Please input insert string:“);scanf(“%s“,p-data);if(H=NULL) H=p;p-next=NULL;elsewhile(q!=NULL q=q-next; if(q!=NULL)r-next=p; p-next=q; if(q=NULL) r-next=p;p-next=NULL;return H;linklist deleteL(linklist H )lnode *p=H,*q=H;char str4;if(H=NULL) printf(“error!“);elseprintf(“P

5、lease input the delete string:“);scanf(“%s“,str);while(strcmp(p-data,str)!=0 p=p-next; if(strcmp(p-data,str)=0) q-next=p-next; free(p); 实验二报告:关于链表的插入和删除第 3 页 共 5 页 4/23/2018else printf(“Cant find the string!“);return H; void printL(linklist H)lnode *p;p=H;while(p!=NULL)printf(“%5s“,p-data);p=p-next;

6、printf(“n“); void main()linklist createL( );linklist insertL(linklist H );linklist deleteL(linklist H );void printL(linklist H );int i=0;linklist H;while(i!=4)printf(“ |*链表操作*|n“); printf(“ |*1.创建链表 *|n“); printf(“ |*2.插入某元素 *|n“); printf(“ |*3.删除某元素 *|n“); printf(“ |*4.退出 *|n“); printf(“Please inpu

7、t a number from 1 to 4 :“);scanf(“%d“,switch(i)case 1 : H=createL(); printL(H);break;case 2 : H=insertL(H); printL(H);break;case 3 : H=deleteL(H); printL(H);break;default: break;实验二报告:关于链表的插入和删除第 4 页 共 5 页 4/23/2018 四、运行结果:四、运行结果:五、心得体会:五、心得体会: 这个程序还有一些问题,首先在创建链表的时候如何结束输入,我是用了这个程序还有一些问题,首先在创建链表的时候如何结束输入,我是用了实验二报告:关于链表的插入和删除第 5 页 共 5 页 4/23/2018一个标志一个标志 exit。其实可以定义一个变量。其实可以定义一个变量 n,做一个,做一个 n 次循环。插入和删除也一次循环。插入和删除也一 样,这样会比较完美点。这是看了同学的作业之后才想到的。样,这样会比较完美点。这是看了同学的作业之后才想到的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号