您的位置:首页 > 编程语言 > C语言/C++

线性表的顺序存储结构C语言版

2016-06-22 19:04 459 查看
#include <stdio.h>

#define MAXSIZE 101
#define N 10

typedef struct SeqList
{
int data[MAXSIZE];
int length;
}SeqList;

void  initList(SeqList *L);
int Listinsert(SeqList *L, int index, int e);
int Listdelete(SeqList *L, int index, int *e);
void printList(SeqList L);

int main(void)
{
SeqList L;
int e;
initList(&L);
for (int i = 1; i <N; ++i)
{
Listinsert(&L,i,i);
}
printList(L);
printf("\n======\n");
for(int i=L.length;i>=1;--i)
{
Listdelete(&L,i,&e);
printf("%d\t", e);
}
putchar(10);

return 0;
}

void initList(SeqList *L)
{
L->length = 0;
}

int Listinsert(SeqList *L, int index, int e)
{
if(L->length== MAXSIZE) return -1;
if(index<=L->length+1  && index>=1)
{
if(index==L->length+1)
{
L->data[L->length+1] = e;
L->length += 1;
}
else
{
for (int i = L->length; i >= index ; --i)
{
L->data[i+1] = L->data[i];
}
L->data[index] = e;
L->length  += 1;
}

return 0;
}
return -1;

}

int Listdelete(SeqList *L, int index, int *e)
{
if(index>L->length) return -1;
*e = L->data[index];
for(int i=index;i<=L->length;i++)
{
L->data[i] = L->data[i+1];
}
L->length -= 1;
return 0;
}
void printList(SeqList L)
{
for (int i = 1; i <= L.length; ++i)
{
printf("%d\t", L.data[i]);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息