- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验报告——顺序表链表的实现
课程名称:数据结构 任课教师:
实验题目:线性表的基本操作
实验环境: Visual C++ 6.0
实验目的:
1、掌握线性表的定义;
2、掌握线性表的基本操作,如建立、查找、插入和删除等。
实验内容:
定义一个包含学生信息(学号,姓名,成绩)的的顺表序和链表,使其具有如下功能:
根据指定学生个数,逐个输入学生信息;
逐个显示学生表中所有学生的相关信息;
根据姓名进行查找,返回此学生的学号和成绩;
根据指定的位置可返回相应的学生信息(学号,姓名,成绩);
给定一个学生信息,插入到表中指定的位置;
int createStLink(struct Node *head,struct Node *stu)
{
struct Node *p6,*p7,*p8;
p7=head;
p6=stu;
if(head==NULL)
{
head=p6;p6-next=NULL;
}
else
{ //如果链表为空则在头结点创建信息
while(p6-num p7-num p7-next!=NULL)
{
p8=p7;
p7=p7-next;
}
if(p6-num=p7-num)
{
if(head==p7)
head=p6;
else
p8-next=p6;
p6-next=p7;
}
else
{
p7-next=p6;p6-next=NULL;
}
}
N++;
return 1;
}
int main()
{
struct Node *H,*stud;
char M;
int num1;
H=initlist();
删除指定位置的学生记录;
(7) 统计表中学生个数。
实验提示:
学生信息的定义:
typedef struct {
char no[8]; //8位学号
char name[20]; //姓名
int price; //成绩
}Student;
顺序表的定义
typedef struct {
Student *elem; //指向数据元素的基地址
int length; //线性表的当前长度
}SqList;
链表的定义:
typedef struct LNode{
Student data; //数据域
struct LNode *next; //指针域
}LNode,*LinkList;
实验要求:
(1) 程序要添加适当的注释,程序的书写要采用缩进格式。
(2) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。
(3) 程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。
(4) 根据实验报告模板详细书写实验报告,在实验报告中给出链表根据姓名进行查找的算法和插入算法的流程图。
(5) 作业下次上机课上交。顺序表的源程序保存为SqList.cpp,链表的源程序保存为LinkList.cpp,实验报告命名为:实验报告1.doc。源程序和实验报告压缩为一个文件(如果定义了头文件则一起压缩),按以下方式命名:学号姓名.rar,如070814101薛力.rar。
根据姓名进行查找的算法:
void search_name(struct stu array[], int n, char* name){ int i; char mark = 1; for (i = 0; i n; i++) { if (strcmp(name, array[i].name) == 0) { printf(学生姓名:%s\n, name); printf(学生学号:%s\n, array[i].id); printf(学生性别:%s\n,array[i].xingb); printf(学生班级:%d\n,array[i].bb);
文档评论(0)