单链表的操作实验报告【数据结构实验报告-链表x】
数据结构实验报告
姓名
学号
专业班级
指导教师:
实验时间
5月12到16号
实验地点
图书馆四楼机房
实验目标
(1) 熟练掌握线性表的链式存储结构。
(2) 熟练掌握单链表的有关算法设计。
(3) 根据具体问题的需要,设计出合理的表示数据的顺序结构,并设计相关算法。
实验内容和要求
(1)本次实验中的链表结构指带头结点的单链表;
(2 )单链表结构和运算定义,例如求链表长度,在第 i个结点前插入值为x的结点;
(3 )实验程序有较好可读性,各运算和变量的命名直观易懂,符合软件工程要求;
(4)程序有适当的注释。
数据结构设计typedefstruct{
数据结构设计
typedefstruct
{
eleme nttype data; struct node *n ext;
} no de;
(给出单链表的数据结构)
//结点结构
//存放数据的字段
//指向后继结点的指针
算法设计(给出具体设计的函数代码)
(1)初始化链表运算的实现 算法如下:
voidi ni tial_list( n ode * &L){L=new no de;L-> next=NULL;
voidi ni tial_list( n ode * &L)
{
L=new no de;
L-> next=NULL;
}
(2)求链表长度运算的实现 算法如下:
in tlist_le ngth( n ode *L)
{
int n=0; node *P=L->n ext;
while( P!=NULL)
{
n++;
P=P-> next;
}
Return n;
//产生头结点
//设置后继指针为空
//存在元素结点时就计数
//继续后继结点的计数
//返回结果
}
(3) 插入算法的实现
在链表L的第i个元素结点前插入值为 x的结点算法如下:
void list_insert( node *L, int i, elementtype x)
{
node *P=L; int k=0; node *S;
while( k! = i -1 && P! = NULL) // 搜索 ai-i 结点
{
P=P->next; p++;
}
if ( P==NULL ) error( “序号错“ ); //等价于判断插入序号是否正确
else
{ S = new node; //产生结点
S - > data=x; // 装入数据
S - > next = P -> next;
P- > next =S; // 插入结点
}
}
5. 总结和心得
这次数据结构的上机实验, 我做了单链表的初始化、 求链表的长度和在链表中插入新结 点三个试验。在实验过程中,表达式求值和括号匹配出错的比较多,一是由于粗心大意,二 是由于知识点掌握的还不够熟悉, 这让我吸取了认真细心的教训, 学习毕竟来不得半点马虎。
在做实验的过程中, 遇到不会的就向老师和同学请教,并一起讨论,最终解决问题。这 也使我发现了一个人的知识是比较狭隘的, 通过交流和沟通, 和别人分享自己的观点并吸收 他人的优点,何以是我们取他人之长补己之短。更重要的是, 这次实验练习中,我对数据结 构产深了更加浓厚的兴趣。而且,我对计算机比较感兴趣,就更应该学好数据结构。
相关热词搜索: 实验报告 数据结构 链表 实验 数据结构实验报告-链表x上一篇:财政局2020年终总结_
下一篇:市政基础设施交接书x: