13

2025-01

当前位置: 默读范文网 > 范文大全 > 公文范文 >

单链表的操作实验报告【数据结构实验报告-链表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