【数据结构】线性表(持续更新)

数据结构—线性表

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;
}

在这里插入图片描述
在这里插入图片描述
如有不懂,欢迎留言讨论。

原创文章 8 获赞 8 访问量 410

猜你喜欢

转载自blog.csdn.net/weixin_45532870/article/details/105884865