您的位置:首页 > 其它

顺序表基本操作

2016-01-05 13:14 489 查看
#include<windows.h>//源代码已经在VS2012编译通过
#include<stdio.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define MaxSize 50
typedef int Status;
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int length;
}SqList;
SqList CreateSqList(SqList &L)
{
int x;
int i = 0;
scanf("%d",&x);
while(x)
{
L.data[i++] = x;
scanf("%d",&x);
}
L.length = i;
return L;
}
void PrintSqList(SqList L)
{
bool Is = true;
for(int i = 0;i < L.length;i++)
{
if(Is)
{
printf("%d",L.data[i]);
Is = false;
}
else
{
printf("--%d",L.data[i]);
}
}
printf("\nThe length:%d\n",L.length);
}
SqList InsertElem(SqList &L,int i,int e)
{
if(i < 0 || i > L.length+1)
{
return L;
}
if(L.length >= MaxSize)
{
return L;
}
for(int j = L.length;j >= i;j--)
{
L.data[j] = L.data[j-1];
}
L.data[i-1] = e;
L.length++;
return L;
}
SqList DeleteElem(SqList &L,int i)
{
if(i < 0 || i > L.length)
{
return L;
}
if(L.length == 0)
{
return L;
}
for(int j = i;j < L.length;j++)
{
L.data[j-1] = L.data[j];
}
L.length--;
return L;
}
int main()
{
//建立顺序表并打印输出
SqList L;
L = CreateSqList(L);
PrintSqList(L);
//在第i个位置上插入新元素
L = InsertElem(L,2,100);
PrintSqList(L);
//删除第i个位置上的元素
L = DeleteElem(L,2);
PrintSqList(L);
system("pause");
return 0;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息