结点单链表的插入和删除实验报告

appdata可以删除吗  时间:2021-04-27  阅读:()

实验一、单链表的插入和删除

一、 目的

了解和掌握线性表的逻辑结构和链式存储结构掌握单链表的基本算法及相关的时间性能分析。

一、要求

建立一个数据域定义为字符串的单链表在链表中不允许有重复的字符串根据输入的字符串先找到相应的结点后删除之。

三、程序源代码

#i nclude"stdio.h"

#i nclude"stri ng.h"

#i nclude"stdl ib.h"

#in clude"ctype.h"typedef struct node //定义结点

{char data[10]; //结点的数据域为字符串struct node*n ext; //结点的指针域

}ListNode;typedef ListNode*Lin kList; // 自定义LinkList单链表类型

Lin kList CreatListR1(); //函数用尾插入法建立带头结点的单链表

数据结构实验报告

ListNode*LocateNode(); //函数按值查找结点void DeleteList(); //函数删除指定值的结点void pr in tl ist(); //函数打印链表中的所有值void DeleteAl l(); //函数删除所有结点释放内存〃二=========主函数==============void mai n()

{charch[10], nu m[10];

Lin kList head;head=CreatListR1(); //用尾插入法建立单链表返回头指针prin tl ist(head); //遍历链表输出其值printf(”Delete node(y/n):"); 〃输入y”或“去选择是否删除结点sca nf("%s", nu m);if(strcmp(nu m,"y")==0 | |strcmp(nu m,"Y")==0){prin tf("Please in put Delete_data:");sca nf("%s",ch); //输入要删除的字符串

DeleteList(head,ch);pr in tl ist(head);

}

DeleteAl l(head); //删除所有结点释放内存}

2

数据结构实验报告

//==========用尾插入法建立带头结点的单链表

3

数据结构实验报告

LinkList CreatListRI(void)

{charch[10];

LinkList head=(LinkList)mal loc(sizeof(ListNode)); //生成头结点ListNode*s,*r,*pp;r=head;r->next二NULL;prin tf("I nput#to end"); //输入#”代表输入结束prin tf("Please in put Node_data:");sca nf("%s",ch); //输入各结点的字符串whi le(strcmp(ch,"#")!=O) {pp=LocateNode(head,ch); //按值查找结点返回结点指针if(pp==NULL) { //没有重复的字符串插入到链表中s=(ListNode*)mal loc(sizeof(ListNode));strcpy(s->data,ch);r->n ext=s;r=s;r->n ext=NULL;

}prin tf("I nput#to end");prin tf("Please in put Node_data:");

4

数据结构实验报告

sea nf("%s",ch);

}return head; //返回头指针

}

〃二=========按值查找结点找到则返回该结点的位置否则返

回NULL二=========

ListNode*LocateNode(L in kList head,char*key)

{

ListNode*p=head->next; //从开始结点比较whi le(p&&strcmp(p->data,key)!=O ) //直到p为NULL或p->data为key止p=p->n ext; //扫描下一个结点return p; //若p=NULL则查找失败否则p指向找到的值key

的结点

}

//========== 删除带头结点的单链表中的指定结点=======vo i dDeleteList(Li nkList head,char*key)

{

ListNode*p,*r,*q=head;p=LocateNode(head,key); //按key值查找结点的if(p==NULL) { //若没有找到结点退出prin tf("positi on error");

5

}whi le(q->next!二p) 〃p为要删除的结点 q为p的前结点q二q->n ext;r二q->n ext;q->n ext=r->n ext;fr e e(r); //释放结点

}

〃二二=========打印链表=======void pr in tl ist(L in kList head)

{

ListNode*p=head->next; //从开始结点打印wh i l e(p){prin tf("%s, ”,p->data);p=p->n ext;

}prin tf("\n");

}

//========== 删除所有结点释放空间===========void DeleteAI I(LinkList head)

{

LipsrtiNnotdf(e"i*npp=uhtethaed, i*nr;sert no de:");

6

数据结构实验报告

whi le(p->next){ r=p->n ext; free(p);p=r

}fr e e(p);

}

运行结果

加的添加结点的代码:int In sert(ListNode*head) // the in sert fun cti on

{

ListNode*in ,*p,*q;int wh;in=(ListNode*)mal loc(sizeof(ListNode)); in->next二NULL; p=(ListNode

*)mal loc(sizeof(ListNode));p->next=NULL; q=(ListNode

7

数据结构实验报告

*)mal loc(sizeof(ListNode));q->next二NULL; if(! i n)retu rn 0;sca nf("%s", i n->data);printf("input the place where you want to insert you data:");sca nf("%d",&wh);for(p=head;wh>0;p=p->n ext,wh--);q=p->n ext;p->n ext=in;in->n ext=q;retu rn 1 ;

}

运行结果:

prin tf("i nput the in sert node:");

8

数据结构实验报告

最后提示为OK添加成功

实验心得这个实验中 主要修改的是ch和num把它们由指针改成数组因为不改的话在后面 delect函数中会出现没有地址的情况找不到地址就不能执行功能 然后把locate函数的判断语句改一下避免矛盾的出现。

9

萤光云(13.25元)香港CN2 新购首月6.5折

萤光云怎么样?萤光云是一家国人云厂商,总部位于福建福州。其成立于2002年,主打高防云服务器产品,主要提供福州、北京、上海BGP和香港CN2节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。目前萤光云推出北京云服务器优惠活动,机房为北京BGP机房,购买北京云服务器可享受6.5折优惠+51元代金券(折扣和代金券可叠加使用)。活动期间还支持申请免费试用,需提交工单开通免费试用体验...

炭云188元/年,上海CN2 VPS/2核/384MB内存/8GB空间/800GB流量/77Mbps端口/共享IP

炭云怎么样?炭云(之前的碳云),国人商家,正规公司(哈尔滨桓林信息技术有限公司),主机之家测评介绍过多次。现在上海CN2共享IP的VPS有一款特价,上海cn2 vps,2核/384MB内存/8GB空间/800GB流量/77Mbps端口/共享IP/Hyper-v,188元/年,特别适合电信网络。有需要的可以关注一下。点击进入:炭云官方网站地址炭云vps套餐:套餐cpu内存硬盘流量/带宽ip价格购买上...

棉花云1折起(49元), 国内BGP 美国 香港 日本

棉花云官网棉花云隶属于江西乐网科技有限公司,前身是2014年就运营的2014IDC,专注海外线路已有7年有余,是国内较早从事海外专线的互联网基础服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务(SaaS),拥有丰富的国内BGP、双线高防...

appdata可以删除吗为你推荐
j^=iáíá=fq~=OQJOU==aJPPNMO=m~dê~ó=人才ipad支持ipadwindows键是哪个Windows键是哪个键啊?勒索病毒win7补丁由于电脑没连接网络,所以成功躲过了勒索病毒,但最近要联网,要提前装什么补丁吗?我电脑断网好久了iphone连不上wifi我的苹果手机连不上无线,其它手机能,怎么回事?只是家里的连不上css下拉菜单如何用css3做导航栏下拉菜单phpecho在php中 echo和print 有什么区别联通iphone4北京 朝阳区 哪家联通店可以卖Iphone4的,本周周末过去买googleadsence谷歌adsense是被封了么?
cn域名注册 个人域名注册 游戏服务器租用 怎样申请域名 mach5 香港主机 mysql主机 丹弗 上海域名 上海服务器 服务器维护 中国电信网络测速 独立主机 1美元 mteam 聚惠网 跟踪路由 byebyelove ddos防火墙 天鹰抗ddos防火墙 更多