《数据结构》实验报告 实验序号:3 实验项目名称:链式表的操作 学 号 姓 名 pmj 专业、班 实验地点 实验楼 1 指导教师 实验时间 周五 一、实验目的及要求 1. 通过实验理解单链表的逻辑结构; 2. 通过实验掌握单链表的基本操作和具体的函数实现。 二、实验设备(环境)及要求 微型计算机; w indow s 操作系统; Microsoft Visual Studio 6.0 集成开发环境。 三、实验内容与步骤 1.链式表表示和实现线性表的如下: #include"stdio.h" #include"string.h" #include"stdlib.h" #include"ctype.h" typedef struct node //定义结点 { char data[10]; //结点的数据域为字符串 struct node *next; //结点的指针域 }ListNode; typedef ListNode * LinkList; // 自定义 LinkList单链表类型 LinkList CreatListR1(); //函数,用尾插入法建立带头结点的单链表 ListNode *LocateNode(LinkList head, char *key); //函数,按值查找结点 void DeleteList(LinkList head,char *key); //函数,删除指定值的结点 void printlist(LinkList head); //函数,打印链表中的所有值 void DeleteAll(LinkList head); //函数,删除所有结点,释放内存 //==========主函数============== void main() { char *ch,*num; num=new char; ch=new char[10]; LinkList head; head=CreatListR1(); //用尾插入法建立单链表,返回头指针 printlist(head); //遍历链表输出其值 printf(" Delete node (y/n):"); //输入"y"或"n"去选择是否删除结点 scanf("%s",num); if(strcmp(num,"y")==0 || strcmp(num,"Y")==0){ printf("Please input Delete_data:"); scanf("%s",ch); //输入要删除的字符串 DeleteList(head,ch); printlist(head); } DeleteAll(head); //删除所有结点,释放内存 } //==========用尾插入法建立带头结点的单链表=========== LinkList CreatListR1(void) { char *ch; ch=new char[10]; LinkList head=(LinkList)malloc(sizeof(ListNode)); //生成头结点 ListNode *s,*r,*pp; r=head; r->next=NULL; printf("Input # to end "); //输入"#"代表输入结束 printf("Please input Node_data:"); scanf("%s",ch); //输入各结点的字符串 while(strcmp(ch,"#")!=0) { s=(ListNode *)malloc(sizeof(ListNode)); strcpy(s->dat...