下载此文档

实验三-单链表的基本操作.doc


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
实验三单链表的基本操作
一、实验目的
1、掌握线性表的链式存贮结构及基本操作,深入了解链表的基本特性,以便在实际问题背景下灵活运用它们。
2、巩固该存贮结构的构造方法,深入理解和灵活掌握链表的插入、删除等操作。
二、实验要求
1、定义一链表类型,并定义带有头结点的单链表。
2、将教材中链表的建立、初始化、插入、删除等函数实现。
3、链表能够存储10名学生的基本信息(包括姓名、学号和成绩)。
4、由主函数按照用户要求对各个链表操作访问。
5、每操作之前要有明确的说明,操作后要输出操作结果。
6、分析顺序表链表的插入、删除、查找的时间和空间复杂度。
三、实验内容
1、在自己的U盘的“姓名+学号”文件夹中创建“实验3”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。
2、完成链表操作的如下函数:
单链表的建立、插入、删除
#include<>
#include<>
static int N=5;
typedef struct _sy
{ char name[12];
int no;
struct _sy *next;
}stud;
stud *Create(int m) //创建链表
{ int i;
stud *h,*p,*q;
h=(stud*)malloc(sizeof(stud));
if(h!=NULL)
{ p=h;
for(i=0;i<m;i++)
{ q=(stud*)malloc(sizeof(stud));
if(q!=NULL)
{ printf("依次输入第%d个人的姓名和学号:\n",i+1);
scanf("%s%d",q->name,&q->no);
q->next=NULL;
p->next=q;
p=q;
}
}
}
printf("\n");
return(h);
}
stud *Delete(stud *sy,int post) //删除一个学生的数据
{ int i;
stud *cur,*pre;
cur=sy;
if(0==post)
{ return(sy);}
else
{ if(1==post)
{ cur=cur->next;
sy->next=cur->next;
free(cur);
}
else
{ for(i=2;i<post+1;i++)
{ cur=cur->next;
pre=cur;
}
cur=cur->next;
pre->next=cur->next;
free(cur);
}
return(sy); }}
stud *Insert(stud *sy,int post) //插入一个新的学生的数据
{ int i;
stud *cur,*pre,*node;
if(sy!=NULL)
{ cur=sy;
node=(stud*)malloc(sizeof(stud));
if(node!=NULL)
{ printf("请输入新人的姓名和学号:\n");
scanf("%s%d",n

实验三-单链表的基本操作 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息