资源简介
课程设计报告及代码 静态单链表操作包括创建 插入 删除 输出初始化 等
代码片段和文件信息
#include
#include
#include
#define MaxSize 100
typedef char ElemType[10];
typedef struct node
{
ElemType data;
int next;
}StaticList[MaxSize];
//初始化线性表
void InitList(StaticList s1)
{
int j;
s1[0].next=0;
for(j=1;j s1[j].next=-1;
}
//判断是否为空表
int ListEmpty(StaticList s1)
{
return(s1[0].next==0);
}
int ListLength(StaticList s1)
{
int n=0j=0;
while(s1[j].next!=0)
{
n++;
j=s1[j].next;
}
return(n);
}
//输出链表
void DispList(StaticList s1)
{
int j=0;
while(s1[j].next!=0)
{
j=s1[j].next;
cout< }
cout< }
//按值查找
int LocateElem(StaticList s1ElemType e)
{
int j=s1[0].next;
int n=1;
while(j!=0&&strcmp(s1[j].datae)!=0)
{
j=s1[j].next;
n++;
}
if(j==0)
return(0);
else
return(n);
}
//求线性表中的第i个元素的值
int GetElem(StaticList s1int iElemType &e)
{
int k=0j=s1[0].next;
while(k {
k++;
j=s1[j].next;
}
if(j==0) //不存在第i个元素
return 0;
else //存在第i个元素
{
strcpy(es1[j].data);
return 1;
}
}
//插入
int ListInsert(StaticList &s1ElemType eint i)
{
int j=s1[0].nextj1j2k;
if(i==1)
{
if(j==0)
{
strcpy(s1[1].datae);
s1[0].next=1;
s1[1].next=0;
return 1;
}
else
{
k=j+1;
while(k!=j)
{
if(s1[k].next==-1)
break;
else
k=(k+1)%MaxSize;
}
if(k!=j)
{
strcpy(s1[k].datae);
s1[k].next=s1[0].next;
s1[0].next=k;
return 1;
}
else return 0;
}
}
else
{
k=0;
while(k {
k++;
j=s1[j].next;
}
if(j==0)
return 0;
else
{
j1=j;
j2=s1[j].next;
k=j+1;
while(k!=j)
{
if(s1[k].next==-1)
break;
else
k=(k+1)%MaxSize;
}
if(k!=j)
{
strcpy(s1[k].datae);
s1[j1].next=k;
s1[k].next=j2;
return 1;
}
else return 0;
}
}
}
//删除
int ListDelete(StaticList s1int iElemType &e)
{
int j=s1[0].nextj1k;
if(s1[0].next==0) //空表时删除失败
return 0;
if(i==1) //删除第一个节点
{
j1=s1[0].next;
s1[0].next=s1[j1].next;
s1[j1].next=-1;
return(1);
}
else //删除其他节点
{
k=0;
while(k {
k++;
j=s1[j].next;
}
if(j==0)
return 0;
else
{
if(s1[j].next==0)//不存在第i个节点
return(0);
j1=s1[j].next;
s1[j].next =s1[j1].next;
strcpy(es1[j1].data);
s1[j1].next=-1;
return 1;
}
}
}
//主函数
void main()
{
int it;
ElemType e;
StaticList L;
InitList(L);
ListInsert(L“a“1);
ListInsert(L“c“2);
ListInsert(L“a“3);
ListInsert(L“e“4);
ListInsert(L“d“5);
ListInsert(L“b“6);
cout<<“该静态线性表为:“< cout<<“请输入要查找的值:“< cin>>e;
t=LocateElem(Le);
if(t!=0)
cout< else
cout< i=6;
GetElem(Lie);
cout<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 214168 2009-07-01 14:38 312007080611108张敏数据结构\312007080611108张敏数据结构课程设计.rar
文件 44544 2009-06-28 23:32 312007080611108张敏数据结构\数据结构课程设计\22.doc
..A..H. 162 2009-06-28 22:38 312007080611108张敏数据结构\数据结构课程设计\~$与计算机学院课程设计说明书1.doc
文件 346112 2009-06-18 18:20 312007080611108张敏数据结构\数据结构课程设计\数学与计算机学院课程设计说明书1.doc
文件 3278 2009-06-17 00:49 312007080611108张敏数据结构\数据结构课程设计\静态单向链表.cpp
目录 0 2009-07-01 14:38 312007080611108张敏数据结构\数据结构课程设计
目录 0 2009-07-01 14:39 312007080611108张敏数据结构
----------- --------- ---------- ----- ----
608264 7
- 上一篇:产品规划模版 简单 提纲
- 下一篇:企业人事管理系统-毕业论文
评论
共有 条评论