实用文档
实验 一 线性表的基本操作实现及其应用
一、实验目的
1、熟练掌握线性表的基本操作在两种存储结构上的实现。 2、会用线性链表解决简单的实际问题。
二、实验容
题目一 链表基本操作
该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。其中,程序中的单链表(带头结点)结点为结构类型,结点值为整型。单链表操作的选择以菜单形式出现,如下所示: please input the operation:
1.初始化 2.清空 3.求链表长度 4.检查链表是否为空
5.检查链表是否为满 6.遍历链表(设为输出元素)7.从链表中查找元素 8.从链表中查找与给定元素值相同的元素在表中的位置 9.向链表中插入元素 10. 从链表中删除元素 其他键退出。。。。。
实验 一 线性表的基本操作实现及其应用
一、实验目的
1、熟练掌握线性表的基本操作在两种存储结构上的实现。 2、会用线性链表解决简单的实际问题。
二、实验容
题目一 链表基本操作
该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。其中,程序中的单链表(带头结点)结点为结构类型,结点值为整型。单链表操作的选择以菜单形式出现,如下所示: please input the operation:
1.初始化 2.清空 3.求链表长度 4.检查链表是否为空
5.检查链表是否为满 6.遍历链表(设为输出元素)7.从链表中查找元素 8.从链表中查找与给定元素值相同的元素在表中的位置 9.向链表中插入元素 10. 从链表中删除元素 其他键退出。。。。。
题目一 链表基本操作
一、数据结构与核心算法的设计描述
1、单链表的最大长度 #define MAXSIZE 100 2、单链表的结点类型定义
实用文档
/* 定义elemtype为int类型 */ typedef int elemtype;
/* 单链表的结点类型 */ typedef struct STD {
elemtype elem; STD *next;
}list, * linklist;
3、初始化单链表
/* 函数功能:对链表进行初始化
参数:链表(linklist L)
成功初始化返回1,否则返回0 */
int init(linklist &L) {
L=(linklist)malloc(sizeof(list));//头结点申请存。 if(!L) //判断有无申请到空间。
return 0; //没有申请到存,参数失败返回0 L->next=NULL;
L->elem=0; //单链表中有多少元素 return 1; //成功参数返回1 }
4、清空单链表
/* 函数功能:把链表清空
参数:链表(linklist L)
成功清空链表返回1 */
int makeempty(linklist &L) {
linklist p,q; p=L->next;
while(p) //当p非空时,删除p {
q=p;
p=p->next; free(q); }
L->next=NULL; //只剩头指针,所以L->next=NULL L->elem=0; //清空后链表中元素为0 return 1; //清空后返回1 }
5、求链表长度
/* 函数功能:返回链表的长度
参数;链表(linklist L)
函数返回链表的长度 */
int getlength(linklist L) {
linklist p; p=L->next; int j=0; while(p)
实用文档
}
{
j++; //统计链表中元素 p=p->next; }
return j; //最后返回链表长度.
6、判断链表是否为空
/* 函数功能:判断链表是否为空
参数;链表(linklist L)
链表为空时返回0,不为空返回1 */
int isempty(linklist L) {
if(L->next) //头结点后有元素表示链表不空则返回1 return 1; else
return 0; //头结点后没有元素表示链表不空则返回0 }
7、检查链表是否为满
/* 函数功能:判断链表是否为满
参数;链表(linklist L)
链表为满时返回0,不为满返回1 */
int isfull(linklist L) {
if(L->elem <= MAXSIZE) //头结点的elem储存的为链表的长度。 return 1; //其小于MAXSIZE表示链表不满 else
return 0; //否则返回0 }
8、遍历链表
/* 函数功能:遍历链表,输出每个节点的elem值
参数;链表(linklist L)
通过循环逐个输出节点的elem值 */
void show(linklist L) {
linklist p; p=L->next;
if(isempty(L)==0) //当链表为空时则输出链表为空 {
cout<<\链表为空!\ }
while(p) //当链表为不空时则输出链表每个节点的elem值 {
cout<
cout< 9、从链表中查找元素 /* 函数功能: 从链表中查找有无给定元素 参数;链表(linklist L),给定元素(int i)
实验一线性表地基本操作实现及其应用
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)