数据结构 线性表 顺序表 源代码C

更新时间:2023-08-17 15:57:01 阅读量: 资格考试认证 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能

#define MAXSIZE 100 //MAXSIZE 为线性表可能的最大长度 #include <stdio.h>

#include <iostream.h>

typedef int ElemType;

typedef struct

{

ElemType data[MAXSIZE];

int length; // length为线性表的长度

} SqList;

SqList l;

//线性表定义

void InitList(SqList &L) //初始化操作,将线性表L置空

{

}

L.length = 0;//g给顺序表长度初始化为0

void CreatSqlist(SqList &L,int n) //建立一个顺序存储的线性表 {

printf("请输入节点");

int i;

for(i=0;i<n;i++)

scanf("%d",&L.data[i]);//读取元素

L.length=n;//表的长度就是元素的个数

fflush(stdin); //清除一个流

}

void Output(SqList &L) //输出顺序表L

{

int i;

for(i=0;i<L.length;i++)

printf("%5d",L.data[i]); //每个数据占5列

printf("\n");

}

int DELETE(SqList &L,int i)//删除一个元素

{

int j;

if(i<1||i>L.length)//删除位置 错误

{printf("error");return 0;}

else

{

for(j=i;j<L.length;j++)

L.data[j-1]=L.data[j];//依次把后一个元素往前移动一个位置 L.length--;//删除之后长度减1

数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能

}

return 1;

}

int INSERT(SqList &L,int x,int i)//指定位置插入元素

{

int j;

if(L.length>=MAXSIZE-1)

{printf("over flow");return 1;}//上溢

else if((i<1)||(i>L.length+1))

{printf("error");return 1;}

else

{for(j=L.length;j>=i-1;j--)

L.data[j+1]=L.data[j];//元素位置依次后移一位

L.data[i-1]=x;//在第i个节点上插入x

L.length=L.length+1;//插入之后长度加1

}

return 0;

}

int GET(SqList &L,int i)//从表中获得一个元素

{

int m;

if((i<0)||(i>L.length)){printf("overflow");return 1;}

else if((i>=1)&&(i<=L.length))

{

m=L.data[i-1];

}printf("%d ",m);

return 0;

}

int chazhao(SqList &L,int x)//从表中查找元素

{

int i,k;

printf("\n请输入你要查找的元素 x=?");

scanf("%d",&x);

for(i=0;i<=(L.length+1);i++)//从第一个元素开始查找,与X比较。 {

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

{printf("要查找的元素%d 位于 %d 上\n\n",x,i+1); k=0;

break;

}

}

数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能

if(k!=0) printf("%d 不在表中",x);

return 0;

}

int PUEGE(SqList &L)// 删除线性表中重复出现的多余节点 {

int i=1,j,x,y;

while(i<L.length)

{x=L.data[i];

j=i+1;

/*for(j=i+1;j<L.length;j++)*/

while(j<L.length)

{

y=L.data[j];

if(x==y)DELETE(l,j);

else j++;

}

i++;

}

return 0;

}

int main()

{int n,i,k,x;

InitList(l);

printf("请输入线性表的长度 ");

scanf("%d",&n);

CreatSqlist(l,n);

Output(l);

printf("请输入你要删除元素的位置=?");

scanf("%d",&k);

DELETE(l,k);Output(l);

printf("请输入想要 插入的数和位置x,i=?");

scanf("%d,%d",&x,&i);

INSERT(l,x,i);Output(l);

printf("请输入你要取的数在的节点位置");

scanf("%d",&i);

GET(l,i);

chazhao(l,x);

PUEGE(l);

return 0;

}

数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能

本文来源:https://www.bwwdw.com/article/vn8j.html

Top