学号: 姓名: 时间:
一、目的
1.做实验的目的
加深对线性表的理解,学会定义线性表的存储结构,掌握线性表的基本操作。
2.撰写实验报告的目的
对本次实验情况进行总结,加强对实验内容的理解,对实验过程有一个系统的认识,从中获得本次试验的经验,并对实验结果进行适当的分析,加深对栈和队列的理解和认识。
二、内容
1.说明实验次数及实验内容
本次实验用一次实验课时完成
实验内容:
节点定义:
typedef struct node{
int idx;
int age;
struct node *next;
}Node,*List;
本次实验的对象的存储内容包括ID和AGE,所以定义了如上的结构体,idx用于存储ID号,age用于存储年龄,next用于形成链式结构,Node定义了该类型的一个节点,List定义了该类型的一个链表。
(1)、编写函数CreateList()和PrintList(),从给定数组创建链表,打印链表。
…… …… 余下全文
XX学院计算机科学与技术系
实验报告本
撰写及拟改实验报告注意事项
一、填写信息
1、填写信息齐全、字迹清晰、日期真实;
2、每次实验信息应填写完整,如:实验序号及实验项目;
3、每次实验时间应如实填写完整,如:第 周 星期 第 节;
4、实验报告撰写认真细致,图例完整,有大量源代码的可以附页。
二、批改实验报告
1、一律采用等级制;
2、批改时应对错分明,错误之处应有文字说明或指出错误的标记;
3、批改后的签名和日期应完整。
计算机专业实验课程考试与考核
为推动实验教学改革,规范实验课程考试与考核,提高学生实践动手能力。计算机专业实验部对实验课程考试与考核方法如下规定。
1、考核以实验课程的教学大纲为准。
2、根据课程性质,采用考核制,总成绩采用等级制计分。
以本实验课程完成的实验内容为依托,独立完成老师布置的验证性、综合性、设计性、创新性实验项目。重点考查学生实验态度,在实验过程中能否及时发现问题,解决问题,是否有创新性设计思想。
…… …… 余下全文
《数据结构》实验报告
院系 应用科技学院专业电子信息工程
姓名 ## 学号
10 级 电信班 20## 年 10 月 11日
1.实验目的
1.掌握线性表的基本运算。
2.掌握顺序村存储的概念,学会对顺序存储数据结构进行操作。
3.加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力。
2.需求分析
要求用c语言编写一个演示程序,首先建立一个空表,然后根据用户选择,能够在线性表的任意位置实现插入元素、删除元素、初始化线性表、查找某一元素的在线性表中得位置。
…… …… 余下全文
中国矿业大学计算机学院实验报告
…… …… 余下全文
数据结构实验报告
实习题名:线性表的基本运算以及多项式的算术运算
班级:B120413 姓名:陈何渊 学号B12041318 日期:2013.10.7
顺序表的基本运算:
一、 问题描述
实现单链表的定义和基本操作。实现顺序表的逆置。删除表中所有元素值等于x的元素。若表中存在这样的元素,删除之,函数返回true;否则返回false。
二、 概要设计
如下图显示了名为SeqList.dsw的工程,包含3个文件,包括linearlist.h,list.h和SeqList.cpp。其中linearlist.h和list.h是程序头文件。List.h是linearlist.h的派生类来实现线性表的基本运算。SeqList.cpp是程序运行文件。而主函数代码如图所示:
三、 详细设计
1. 类和类的层次结构
…… …… 余下全文
实验一:线性表的基本操作
【实验目的】
学习掌握线性表的顺序存储结构、链式存储结构的设计与操作。对顺序表建立、插入、删除的基本操作,对单链表建立、插入、删除的基本操作算法。
【实验内容】
1. 顺序表的实践
1) 建立4个元素的顺序表s=sqlist[]={1,2,3,4,5},实现顺序表建立的基本操作。
2) 在sqlist []={1,2,3,4,5}的元素4和5之间插入一个元素9,实现顺序表插入的基本操作。
3) 在sqlist []={1,2,3,4,9,5}中删除指定位置(i=5)上的元素9,实现顺序表的删除的基本操作。
2. 单链表的实践
3. 1) 建立一个包括头结点和4个结点的(5,4,2,1)的单链表,实现单链表建立的基本操作。
2) 将该单链表的所有元素显示出来。
3) 在已建好的单链表中的指定位置(i=3)插入一个结点3,实现单链表插入的基本操作。
4) 在一个包括头结点和5个结点的(5,4,3,2,1)的单链表的指定位置(如i=2)删除一个结点,实现单链表删除的基本操作。
5) 实现单链表的求表长操作。
【实验步骤】
1.打开VC++。
…… …… 余下全文
数 据 结 构
实验报告
实验名称:___线性表_________________________
学生姓名:张鑫磊____________________________
班 级:2013211107____________________________
班内序号:01____________________________
学 号:2013210182____________________________
日 期:2015.1.6____________________________
(一)实验目的和要求
实验目的:熟练掌握线性表的基本操作在顺序存储结构上的实现。
实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
(二)实验主要内容
1. 建立n个元素的顺序表SqList,实现顺序表的基本操作;
2. 在SqList的元素i之后插入一个元素,实现顺序表插入的基本操作;
3. 在sqList中删除指定位置i上的元素,实现顺序表删除的操作。
4.
(三)仪器设备
PC机,Windows XP操作平台,Visual C++
(四)实验原理
顺序表操作:定义一个顺序表类,该类包括顺序表的存储空间、存储容量和长度,以及构造、插入、删除、遍历等操作的方法
(五)实验步骤与调试分析:
顺序表操作:先构造有四个数据的顺序表,在第4个位置插入9,再读取并删除第3个元素。
(六)源程序:
#include<iostream>
using namespace std;
const int LIST_INIT_SIZE=10; //顺序表初始长度
const int LISTINCREMENT=5; //顺序表长度增值
class SqList
{
int *L; //定义存储空间起始地址
int length; //顺序表当前长度
int listsize; //顺序表当前存储容量
bool flag; //设立标志值记录操作成败
public:
SqList(int v1,int v2,int v3,int v4); //构造函数构造并初始化顺序表
void ListInsert(int i,int e); //实现将e插入到顺序表中第i个位置
void ListDelete(int i,int &e); //实现删除顺序表第i个元素
void ListVisit(); //实现顺序表的遍历
};
SqList::SqList(int v1,int v2,int v3,int v4) //构造并初始化顺序表
{
L=new int[LIST_INIT_SIZE];
if(!L) //分配失败
{
flag=false;
cout<<"ERROR"<<endl;
}
else //分配成功,进行初始化
{
*L=v1;
*(L+1)=v2;
*(L+2)=v3;
*(L+3)=v4;
length=4;
listsize=LIST_INIT_SIZE;
flag=true;
}
}
void SqList::ListInsert(int i,int e) //插入元素
{
int *p,*q;
int t;
if(i<1||i>length+1) cout<<"ERROR"<<endl; //插入位置错误
else
{
if(length==listsize) //空间不足,增加分配
{
p=new int[listsize+LISTINCREMENT];
if(!p) cout<<"ERROR"<<endl; //分配失败
else //分配成功,复制顺序表
{
for(t=0;t<length;t++)
*(p+t)=*(L+t);
q=L;L=p;p=q;
delete q;
listsize+=LISTINCREMENT;
}
}
for(t=length;t>=i;t--)
*(L+length)=*(L+length-1);
*(L+i-1)=e;
length++; //插入成功,表长加1
}
}
void SqList::ListDelete(int i,int &e)
{
if(i<1||i>length) cout<<"ERROR"<<endl; //删除位置错误
else
{
e=*(L+i-1);
while(i<length)
{
*(L+i-1)=*(L+i);
i++;
}
length--; //删除成功表长减1
}
}
void SqList::ListVisit() //遍历
{
int i;
for(i=0;i<length;i++)
cout<<" "<<*(L+i);
cout<<endl;
}
int main()
{
int e=0;
SqList list(2,3,4,5);
list.ListVisit();
list.ListInsert(4,9);
list.ListVisit();
list.ListDelete(3,e);
list.ListVisit();
cout<<"e="<<e<<endl;
return 0;
}
…… …… 余下全文