下载此文档

数据结构(C语言版)实验报告.doc


文档分类:IT计算机 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
实验1实验题目:单链表的插入和删除实验目的:了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。实验要求:建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。实验主要步骤:分析、理解给出的示例程序。调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。修改程序:增加插入结点的功能。将建立链表的方法改为头插入法。程序代码:#include""#include""#include""#include""typedefstructnode//定义结点{ chardata[10];//结点的数据域为字符串 structnode*next;//结点的指针域}ListNode;typedefListNode*LinkList;//自定义LinkList单链表类型LinkListCreatListR1();//函数,用尾插入法建立带头结点的单链表LinkListCreatList(void);//函数,用头插入法建立带头结点的单链表ListNode*LocateNode();//函数,按值查找结点voidDeleteList();//函数,删除指定值的结点voidprintlist();//函数,打印链表中的所有值voidDeleteAll();//函数,删除所有结点,释放内存ListNode*AddNode(); //修改程序:增加节点。用头插法,返回头指针//==========主函数==============voidmain(){ charch[10],num[5]; LinkListhead; head=CreatList();//用头插入法建立单链表,返回头指针 printlist(head);//遍历链表输出其值 printf("Deletenode(y/n):");//输入"y"或"n"去选择是否删除结点 scanf("%s",num); if(strcmp(num,"y")==0||strcmp(num,"Y")==0){ printf("PleaseinputDelete_data:"); scanf("%s",ch); //输入要删除的字符串 DeleteList(head,ch); printlist(head); } printf("Addnode?(y/n):");//输入"y"或"n"去选择是否增加结点 scanf("%s",num); if(strcmp(num,"y")==0||strcmp(num,"Y")==0) { head=AddNode(head); } printlist(head); DeleteAll(head);//删除所有结点,释放内存}//==========用尾插入法建立带头结点的单链表===========LinkListCreatListR1(void){charch[10];LinkListhead=(LinkList)malloc(sizeof(ListNode));//生成头结点ListNode*s,*r,*pp;r=head;r->next=NULL;printf("Input#toend");//输入"#"代表输入结束printf("\nPleaseinputNode_data:");scanf("%s",ch);//输入各结点的字符串while(strcmp(ch,"#")!=0){ pp=LocateNode(head,ch);//按值查找结点,返回结点指针 if(pp==NULL){//没有重复的字符串,插入到链表中 s=(ListNode*)malloc(sizeof(ListNode)); strcpy(s->data,ch); r->next=s; r=s; r->next=NULL; } printf("Input#toend"); printf("PleaseinputNode_data:"); scanf("%s",ch);}returnhead;//返回头指针}//==========用头插入法建立带头结点的单链表===========LinkListCreatList(void){ charch[100]; LinkListhead,p; head=(LinkList)malloc(sizeof(ListNode)); head->next=NULL; while(1) { printf("Input#toend"); printf("PleaseinputNode_da

数据结构(C语言版)实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xiaodengyou
  • 文件大小152 KB
  • 时间2019-01-10