- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东北大学秦皇岛分校数据结构实验报告东北大学秦皇岛分校数据结构实验报告
数据结构实验报告
(数据结构)
班级学号 学生姓名 提交日期 2014年12月9日 成 绩
:
计算机与通信工程学院
2013
实验一 线性表的应用
【实验目的】:
1、掌握线性表的逻辑结构定义
2、掌握线性表的两种存储结构(顺序和链式)
3、掌握顺序表和链表的定义及基本操作
【实验内容】
通过编程完成具有一定实际意义的课题,加深对线性表应用的理解和掌握。参考题目如下所示。学生可在完成以下题目之后经指导教师同意自行设计其它选题并将选题源程序与执行结果提交指导教师审阅。
1、实验题目:字母链表
功能要求:生成26个字母的线性表,并实现对特定字母的插入和删除。
程序说明:
使用顺序表或者链表生成字母有序表,并应用相应数据结构实现对单个字母的插入和删除操作。其中,结构体或类的使用,可参考教材、辅导教材或其它应用实例。
源程序如下:
#includestdio.h
#includemalloc.h
typedef struct list{char data;struct list*link;}test;
test *p,*q,*r,*head,*d;
int L;
int m=sizeof(test);
void build();
void display();
int insert_char(char,char);
int delet_char(char);
void build()
{int i;
head=(test*)malloc(m);
p=head;
for(i=1;iL;i++)
{p-data=i+a-1;
p-link=(test*)malloc(m);
p=p-link;}
p-data=i+a-1;
p-link=NULL;
}
void display(int l)
{d=head;
while(d-link!=NULL)
{printf(%c-,d-data);
d=d-link;}
printf(%c\n,d-data);
printf(the list length is:%d\n,l);
}
int insert_char(char X,char Y)
{p=head;
r=(test*)malloc(m);
r-data=X;
if (Ya) Y=Y+32;
if(head-data==Y)
{head=r;
r-link=p;}
else{while((p-data!=Y)(p-link!=NULL)) {q=p;p=p-link;}
if(p-data==Y){q-link=r;r-link=p;}
else{p-link=r,r-link=NULL;}
}
L++;
return L;
}
int delet_char(char X)
{p=head;
if (Xa) X=X+32;
if(head-data==X){head=head-link;free(p);}
else{while((p-data!=X)(p-link!=NULL))
{q=p;
p=p-link;}
if(p-data==X)
{q-link=p-link;
free(p);}
else return(-1);
}
L--;
return L;
}
int main(void)
{int m,x,y,z,l;
L=26;
build();
display(L);
printf(\n请选择:1.插入字母 2.删除字母\n);
m=getchar();
fflush(stdin); //清除键盘缓冲区
switch(m)
{
case 1: printf(you will insert the char X before char Y:\n);
scanf(%c,%c,x,y);
display(insert_char(x,y));
break;
case 2: printf(you will Delete the char X:\n);
scanf(%c,z);
l=delet_char(z);
display(l);
break;
default:printf(ERROR,please input your choice of: 1 or 2\n); break;
}
}
2、实验题目:链表的创建
功能要求:使用简单数据类型,利用指针创建一个基本链表。
程序说明:
使用指针,通过在头结点之后插入新节点的操作,逐步生成基本链表。其中,结构体或类的使用,可参考教材、辅导教材或其它应用实例。
源程序如下:
#include stdlib.h
#include stdio.h
#
文档评论(0)