数据结构—线性表
C语言实现,仅供参考
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef int Elemtype; //自定义int类型
typedef struct seqList
{
int n; //线性表的长度
int maxLength; //最大长度
Elemtype *element; //element域
}SeqList;//顺序表类型名
void Init(SeqList *L, int mSize)
{
L->maxLength = mSize;
L->n = 0;
L->element = (Elemtype *)malloc(sizeof(Elemtype)*mSize);
}
void Output(SeqList *L)
{
int i;
for (i = 0; i < L->n; i++)
{
printf("%d", L->element[i]);
}
printf("\n");
}
Elemtype Find(SeqList *L,int i)
{
if (i<0 || i>L->n - 1)
return NULL;
return *(L->element + 1);
}
void Insert(SeqList *L, int i, Elemtype x)
{
int j;
if (i<-1 || i>L->n - 1)
return ;
for (j = L->n; j>i; j--)
L->element[j + 1] = L->element[j];
L->element[i + 1] = x;
L->n++;
}
void Delete(SeqList *L, int i)
{
int j;
if (i<-1 || i>L->n - 1)
return;
for (j = i + 1; j<L->n; j++)
L->element[j - 1] = L->element[j];
L->n--;
}
Elemtype IsEmpty(SeqList *L)
{
return L->n == 0;
}
Elemtype IsFull(SeqList *L)
{
return L->n == L->maxLength;
}
void Destory(SeqList *L)
{
L->n = 0;
L->maxLength = 0;
free(L->element);
}
int main()
{
int i;
SeqList list;
Init(&list, 100);
for (i = 0; i<10; i++)
if (!IsFull(&list))
Insert(&list, i - 1, i);
Output(&list);
if (!IsEmpty(&list))
Delete(&list, 0);
Output(&list);
printf("%d\n", Find(&list, 4));
Destory(&list);
system("pause");
return 0;
}
如有不懂,欢迎留言讨论。