为了准备下学期的校招,我开始了复习数据结构,自己去编写熟悉数据结构,有不对的地方希望大家指出,一起讨论!
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
#define listmaxsize 100
typedef struct {
ElemType list[listmaxsize];
int length;
}Seqlist;
int SeqlistInit(Seqlist &l)//顺序表初始化
{
l.length=0;
return 1;
}
int SeqlistInsert(Seqlist &l,int i,int x)
{
int j;
if(i<0||i>l.length+1)
{
printf("超出顺序表范围!");
return 0;
}
for(j=l.length;j>i-1;j--)
{
l.list[j]=l.list[j-1];
}
l.list[i-1]=x;
l.length++;
return 1;
}
int SeqlistDelete(Seqlist &l,int i)//删除顺序表中的元素
{
int j;
if(i<0||i>l.length+1)
{
printf("超出顺序表范围!");
return 0;
}
for(j=i-1;j<l.length;j++)
{
l.list[j]=l.list[j+1];
}
l.length--;
return 1;
}
int SeqlistLoaction(Seqlist &l,int x)//查找指定数的位置
{
int i;
for(i=0;i<l.length;i++)
{
if(l.list[i]==x)
{
printf("第%d位\n",i+1);
return 0;
}
}
printf("没有该数!\n");
return 1;
}
int SeqlistPrint(Seqlist &l)//打印顺序表
{
int i;
if(l.length<1){printf("顺序表为空!");return 0;}
for(i=0;i<l.length;i++)
printf("%d ",l.list[i]);
printf("\n");
return 1;
}
int main()
{
int i;
Seqlist L;
SeqlistInit(L);
for(i=0;i<10;i++)
SeqlistInsert(L,i+1,i+1);
SeqlistPrint(L);
SeqlistDelete(L,2);
SeqlistPrint(L);
SeqlistInsert(L,8,100);
SeqlistPrint(L);
SeqlistLoaction(L,100);
return 0;
}