您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页数据结构 实验二

数据结构 实验二

来源:爱go旅游网
实验二

实验名称 单链表及其应用 实验性质 综合性 实验学时数 4学时

一、实验目的 1.深入了解线性表的链式存储结构。 2.熟练掌握在链式存储结构上进行插入、删除等操作的算法。 3.通过线性表结构解决现实中的一些问题。 二、实验内容 1. 线性表的链式存储结构。 2. 链式存储结构上进行插入、删除等操作的算法。 3. 通过线性表结构解决现实中的一些问题。 三、 1、实验题目 实 [问题描述] 验 过 (1)用头插法或尾插法建立一个单链表,并将结果显示到屏幕上。 程 (2)对建好的单链表实现查找、插入、删除、修改等操作。 (3)设计一个选择菜单。 [基本要求] (1)按实验内容编写完整的程序,并上机验证。 (2)实验完成后,提交电子档教师验收程序,并提交填写好的实验报告。 [测试数据] 由学生依据软件工程的测试技术自己确定。注意测试边界数据。 [提高篇](选作) 建立一个有序单链表,实现上述操作。 2、源程序 #include #include \"malloc.h\" #define ElemType char typedef struct Node { ElemType data; struct Node* next; }Node,*LinkList; void InitList(LinkList *L) //初始化单链表 { *L=(LinkList)malloc(sizeof(Node)); (*L)->next=NULL; } void CreateFromTail(LinkList L) //尾插法建表 {Node *r,*s; int flag=1; char c; r=L; printf(\"输入线性表的元素以$结束:\"); while(flag) { c=getchar(); if(c!='$') { } } int InsList(LinkList L,int i,ElemType e) //插入操作 { Node *pre,*s; int k; if(i<=0) return 0; pre=L;k=0; while((pre!=NULL)&&(knext; s=(Node*)malloc(sizeof(Node)); s->data=c; r->next=s; r=s; } flag=0; r->next=NULL;} else { k=k+1; } if(! pre) { printf(\"插入位置不合理\"); return 0; } s=(Node* )malloc(sizeof(Node)); s->data=e; s->next=pre->next; pre->next=s; return 0; } int DelList(LinkList L,int i) //删除 { } char Get(LinkList L,int i) //按序号查找 Node *pre,*r; int k; pre=L;k=0; while(pre->next!=NULL&&knext; k=k+1; } if(!(pre->next)) { printf(\"删除结点的位置i不合适!\"); return 0; } r=pre->next; pre->next=r->next; free(r); return 0; { } void print(LinkList L) //打印线性表 { } int main() { LinkList L; int i; InitList(&L); CreateFromTail(L); while(i!=0) { printf(\"请选择对线性表的操作:1.插入 2.删除 3.查找 4.打印 0.退出LinkList p; p=L->next; while(p) { printf(\"%4c\ p=p->next; } printf(\"\\n\"); int j; Node *p; if(i<=0) return 0; p=L; j=0; while((p->next!=NULL)&&(jnext; j++; } if(i==j) return p->data; else return 0; \\n\"); printf(\"请操作\\n\"); scanf(\"%d\switch(i){ case 1: int y; char c; printf(\"请输入要插入字符的位置:\"); scanf(\"%d\ printf(\"请输入要插入的字符:\"); c=getchar(); c=getchar(); InsList(L,y,c); printf(\"插入后的线性表为:\"); print(L); break; case 2: int m; printf(\"输入要删除字符的位置:\"); scanf(\"%d\ DelList(L,m); printf(\"删除后的线性表为:\"); print(L); break; case 3: int o; printf(\"输入要查找的字符的位置:\"); scanf(\"%d\ printf(\"得到的字符为%c.\\n\ print(L); break; case 4: print(L); case 0: }

break; default: printf(\"请输入正确的选择!\"); break; } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务