第o二次课内实验.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第o二次课内实验

课 内 实 验 报 告 学生姓名: 郭长文 1009290117 及 学 号: 胡志强 1009290118 张学林 1009290138 学 院: 理学院 班 级: 信计101 课程名称: 数据结构 实验题目: 单链表的基本操作 指导教师 姓名及职称: 郭新辰 教授 胡建平 副教授 刘力 实验师 2011年 10月 1 日 目 录 一、实验目的 1 二、实验内容 1 三、实验要点及说明 1 四、实现方法 2 五、实验结果 3 六、源程序清单 4 一、实验目的 1. 了解单链表的结构特点及有关概念; 2. 理解单链表的存储结构; 3. 掌握单链表的基本操作算法。 二、实验内容 建立单链表,完成单链表的基本操作:初始化、插入、删除、逆转、输出、销毁, 置空表、求表长、求前驱、求后继、查找元素、判线性表是否为空。 三、实验要点及说明 对问题的描述,即对各操作进行详细说明 问题描述:编一个程序,作用是建立一个顺序表,且能完成顺序表的如下基本操作: 建表。建一个非空的单链表; 插入。根据单链表结点的位置在单链表里插入数据; 查找。根据顺序表结点的位置查找单链表中的数据; 删除。根据单链表结点的位置在单链表里删除数据; 查找前驱。按值查找,输出顺序表里的数据的前驱; 判断线性表是否为空。判断头结点是否非空即可 输出。将顺序表里的数据全部输出; 求表长。返回其数据元素个数; 置空表。将链表初始化。 逆转。将单链表里的元素逆序。 销毁。释放链表的储存空间。 四、实现方法抽象数据类型的定义 算法分析InitList 初始化链表 AddHead 建立链表 GetNode 查找元素 InsertList 在单链表中插入元素 DeleteList 删除单链表中元素 DestroyList 销毁单链表 PriorList 求前驱 ListLength 求表长 ListEmpty 判断表是否为空 ClearList 置空表 InversionList 逆转 PrintList 输出表 主程序的流程以及各程序模块之间的层次(调用)关系 五、实验结果 六、源程序清单 #includestdio.h #includestdlib.h #includemalloc.h #define flag 0 typedef struct node /*定义结构体类型的结点*/ { int data; struct node *next; }LinkList; void InitList(LinkList *head) /*初始化单链表*/ { head=(LinkList*)malloc(sizeof(LinkList)); if(!head) exit(-1); head-next=NULL; } LinkList *AddHead(LinkList *head) /*头插入法建表*/ { LinkList *p; int x; printf( 请输入元素(输入0结束):); while(x!=flag) { p=(LinkList*)malloc(sizeof(LinkList)); scanf(%d,x); if(x!=0) { p-data=x; p-next=hea

文档评论(0)

5288 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档