C语言链表实验报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

链表实验报告

一、实验名称

链表操作的实现--学生信息库的构建

二、实验目的

(1)理解单链表的存储结构及基本操作的定义

(2)掌握单链表存储基本操作

(3)学会设计实验数据验证程序

【实验仪器及环境】计算机 Window XP操作系统

三、实验内容

1、建立一个学生成绩信息(学号,姓名,成绩)的单链表,按学号排序

2、对链表进行插入、删除、遍历、修改操作。

3、对链表进行读取(读文件)、存储(写文件)

四、实验要求

(1)给出终结报告(包括设计过程,程序)-打印版

(2)对程序进行答辩

五、实验过程、详细内容

1、概念及过程中需要调用的函数

(1)链表的概念结点定义

结构的递归定义

struct stud_node{

int num;

char name[20];

int score;

struct stud_node *next;

};

(2)链表的建立

1、手动输入

struct stud_node*Create_Stu_Doc()

{

struct stud_node *head,*p;

int num,score;

char name[20];

int size=sizeof(struct stud_node);

【链表建立流程图】

2、从文件中直接获取 先建立一个

(3)链表的遍历

(4

(5)删除结点

(6)动态储存分配函数malloc () void *malloc(unsigned size)

①在内存的动态存储区中分配一连续空间,其长度为size

②若申请成功,则返回一个指向所分配内存空间的起始地址的指针 ③若申请不成功,则返回NULL (值为0) ④返回值类型:(void *) ·通用指针的一个重要用途

·将malloc 的返回值转换到特定指针类型,赋给一个指针

【链表建立流程图】

ptr

ptr

ptr->num

ptr->score ptr=ptr->next

head pt r

s s->next = ptr->next ptr->next = s 先连后断 ptr2=ptr1->next

ptr1->next=ptr2->next

free (ptr2)

(7)动态储存释放函数free()

当某个动态分配的存储块不再用时,要及时将它释放

void free(void *ptr)

释放由动态存储分配函数申请到的整块内存空间,ptr为指向要释放空间的首地址。

(8)链表写入文件

(9)链表的读取

六、实验总结

链表弥补了许多数组的缺点,例如,

1、数组在添加新元素时,如果添加的位置是数组的首部或者数组中间,那么我们必须设计算法移动相关元素,并且涉及到许多相关元素;

2、删除元素时,如果删除的不是尾部元素,同样会移动其他元素。

因此使用数组处理大量元素时,会影响程序的整体效率。

但是链表在搜索或随机读写内部元素的时远不如数组操作起来方便。

计算机1403班

李彦霖

1416010319

相关文档
最新文档