- 17
- 0
- 约2.97千字
- 约 5页
- 2018-04-17 发布于河南
- 举报
链表的基本操作 上机报告
华 北 科 技 学 院
上 机 报 告
系(部) 基础部
专业、班级 计算
姓名 学号 ***
课程名称 数据结构(C语言版)
上机题目 链表的基本操作
任课教师 丁智斌
指导教师 丁智斌
成绩(优、良、中、及格、不及格)
华 北 科 技 学 院 基 础 部
一.上机目的
1.定义单链表的结点类型。
2.熟悉单链表的一些基本操作和具体的函数定义。
3.通过单链表的定义掌握线性表的链式存储结构特点。
二.上机环境
Windows XP、Visual C++ 6.0 等
三.上机内容
1.链表的基本操作
源程序或过程:
typedef int ElemType;
#include iomanip.h
#include stdlib.h
#includestdio.h
struct LinearList
{
ElemType* list;
int size;
int MaxSize;
}L;
void InitList(LinearList L,int ms)
{
L.list=new ElemType[ms];
if(!L.list)
{
cerrMemory allocation failure!;
exit(1);
}
L.size=0;
L.MaxSize=ms;
}
void ClearList(LinearList L)
{
L.list=0;
}
int ListSize(LinearList L)
{
return L.size;
}
bool ListEmpty(LinearList L)
{
return L.size==0;
}
bool ListFull(LinearList L)
{
return L.size==L.MaxSize;
}
void TraverList(LinearList L)
{
for(int i=0;iL.size;i++)
{
coutL.list[i];;
}
coutendl;
}
bool FindList(LinearList L,const ElemType item)
{
for(int i=0;iL.size;i++)
if(L.list[i]==item)
{
item==L.list[i];
return true;
}
return false;
}
bool InsertList(LinearList L,const ElemType item,int mark)
{
if(ListFull(L))
return false;
if(mark0)
{
for(int i=L.size-1;i=0;i--)
L.list[i+1]=L.list[i];
L.list[0]=item;
}
else
if(mark0)
L.list[L.size]=item;
else{
for(int i=0; iL.size;i++)
if(itemL.list[i])
break;
for(int j=L.size-1;j=i;j--)
L.list[j+1]=L.list[j];
L.list[i]=item;
}
L.size++;
return true;
}
bool DeleteList(LinearList L,ElemType item,int mark)
{
if(ListEmpty(L)) return false;
if(mark0){
item=L.list[0];
for(int i=1;iL.size;i++)
L.list[i-1]=L.list[i];
}
else
if(mark0) item=L.list[L.size-1];
else{
for(int i=0;iL.size;i++)
if(L.list[i]==item) break;
if(i=L.size)
return false;
else item=L.list[i];
for(int j=i+1;jL.size;j++)
L.list[j-1]=L.list[j];
}
L.size--;
r
原创力文档

文档评论(0)