文档详情

数据结构课后实验源代码.docx

发布:2023-12-13约7.94千字共16页下载文档
文本预览下载声明

数据结构课后实验源代码

实验1:线性表的实现(顺序表)

```

#includeiostream

usingnamespacestd;

constintMAXSIZE=100;

typedefstruct

{

int*data;//指向线性表的指针

intlength;//线性表当前长度

}SqList;

boolInitList(SqListL)//初始化线性表

{

L.data=newint[MAXSIZE];//为线性表分配内存空间

if(!L.data)

returnfalse;

L.length=0;

returntrue;

}

boolListInsert(SqListL,intelem,intpos)//线性表插入元素

{

if(pos1||posL.length+1||L.length=MAXSIZE)//判断插入位置是否合法,和线性表是否已满

returnfalse;

for(inti=L.length;i=pos;i--)//将插入位置及之后的元素后移

{

L.data[i]=L.data[i-1];

}

L.data[pos-1]=elem;//插入元素

L.length++;

returntrue;

}

boolListDelete(SqListL,intpos)//线性表删除元素

{

if(pos1||posL.length)//判断删除位置是否合法

returnfalse;

for(inti=pos-1;iL.length-1;i++)//将删除位置之后的元素前移

{

L.data[i]=L.data[i+1];

}

L.length--;

returntrue;

}

intLocateElem(SqListL,intelem)//定位元素位置

{

for(inti=0;iL.length;i++)

{

if(L.data[i]==elem)

returni+1;

}

return0;

}

intmain()

{

SqListL;

InitList(L);

ListInsert(L,1,1);

ListInsert(L,3,2);

ListInsert(L,5,3);

ListInsert(L,7,4);

for(inti=0;iL.length;i++)

{

coutL.data[i];

}

coutendl;

ListDelete(L,2);

for(inti=0;iL.length;i++)

{

coutL.data[i];

}

coutendl;

intpos=LocateElem(L,5);

if(pos)

cout元素5的位置为posendl;

delete[]L.data;

return0;

}

```

实验2:栈的实现(顺序栈)

```

#includeiostream

usingnamespacestd;

constintMAXSIZE=100;

typedefstruct

{

int*data;

inttop;//栈顶指针

}SqStack;

boolInitStack(SqStackS)//初始化栈

{

S.data=newint[MAXSIZE];

if(!S.data)

returnfalse;

S.top=-1;

returntrue;

}

boolPush(SqStackS,intelem)//入栈操作

{

if(S.top==MAXSIZE-1)//判断栈是否已满

returnfalse;

S.data[++S.top]=elem;//栈顶指针+1,将元素elem放入栈顶位置

returntrue;

}

boolPop(SqStackS,i

显示全部
相似文档