数据结构上机实验报告 实验一 线性表的操作 一、实验目的 1.熟悉 C 语言的上机环境,掌握 C 语言的基本结构。 2.会定义线性表的顺序存储结构。(链式存储结构) 3.熟悉对顺序表(单链表)的一些基本操作。 二、实验要求 1.认真阅读和掌握本实验内容所给的全部程序。 2.保存和打印出程序运行结果,并结合程序进行分析。 三、实验内容 1、编程实现单链表的创建、查找、插入、删除等功能,以输入整形数据为主,输入后按 Enter键结束输入。 程序所能表达到的功能为:实现顺序表的创建、查找、插入、删除等功能。 程序运行后,输入数据并执行。具体程序如下 #include
#include struct list { int data; struct list* next; }; void creat(list * &head,int n)/*建立具有n个节点的链表,head为引用 参数表示表头指针*/ { if(n==0) {head=NULL;return ;} //置表头指针为空后返回 cout<<"从键盘上输入"<>x; p->data=x; p->next=NULL; head=nail=p; if(n==1) return; for(i=1;i<=n-1;i++) { p=new list; nail->next=p; cin>>x; p->data=x; nail=p; } p->next=NULL; //置有n个节点的链表表尾 } void traverse(list *head) //输出所建立的单链表 { list *p; p=head; while(p && p->next!=NULL) { cout<data<<"-> "; p=p->next; //移动到下一个节点 } cout<data<data==no) { head=p->next; delete p; } else { while(p->data!=no) { pl=p;p=p->next;} if(p==NULL) cout<<"链表中没有要删除的节点"<next=p->next; delete p; cout<<"删除节点成功"<data==x) { head=p->next; cout<<"您要查找的数在链表中的序号为:"<data!=x) { pl...