- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
晓庄-数据结构(C语言版)实验报告讲解
数据结构(C语言版) 实验报告
学院 信息工程学院
班级 15计科2班
学号
姓名 张旭
指导教师 曹晨
实验一 线性表基本操作和简单程序
1. 实验目的
(1)复习Visual C++ 6.0上机调试程序的基本方法及C语言编程;
(2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在链表存储结构上的程序设计方法。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 分别以头插法和尾插法建立两个数据域定义为整型的升序单链表,再将这两个有序链表合并成一个新的无重复元素的有序链表,最后可以根据输入的数据,先找到相应的结点,后删除之。
(3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3. 程序代码
#includestdio.h
#includestdlib.h
typedef struct node{
int data;
struct node *next;
}node;
node * qbuild(node *first)
{
int i,n,a[100];
node *s;
printf(输入n:);
scanf(%d,n);
first=(node*)malloc(sizeof(node));
first-next=NULL;
for(i=0;in;i++)
{
s=(node*)malloc(sizeof(node));
printf(输入a[%d]:,i);
scanf(%d,a[i]);
s-data=a[i];
s-next=first-next;
first-next=s;
}
return first;
}
node * hbuild(node *first)
{
int i,n,a[100];
struct node *s,*r;
printf(输入n:);
scanf(%d,n);
first=(node*)malloc(sizeof(node));
r=first;
for(i=0;in;i++)
{
s=(node*)malloc(sizeof(node));
printf(输入a[%d]:,i);
scanf(%d,a[i]);
s-data=a[i];
r-next=s;
r=s;
}
r-next=NULL;
return first;
}
node * hebing(node *La,node *Lb)
{
node *pa,*pb,*pc,*Lc;
pa=La-next;
pb=Lb-next;
Lc=pc=La;
while(pa pb)
{
if(pa-data pb-data){
pc-next =pa;
pc=pa;
pa=pa-next ;
}
else if(pa-data pb-data){
pc-next =pb;
pc=pb;
pb=pb-next;
}
else{
pc-next =pa;
pc=pa;
pa=pa-next ;
pb=pb-next ;
}
}
pc-next =pa?pa:pb;
free(Lb);
return Lc;
}
node * shanchu(node *first,int i)
{
node *p,*q;
p=first-next;
while(p)
{
if((p-next )-data==i)
{
q=p-next ;
p-next =q-next;
free(q);
break;
}
p=p-next;
}
return first;
}
void display(node *first)
{
struct node *p;
p=first-next;
while(p!=NULL)
{
printf(%d ,p-data);
p=p-next;
}
printf(\n);
}
int main()
{
int m;
struct node *a,*b
文档评论(0)