线性表之存储


线性表:零个或多个元素的有限序列,用于存储数据的一种方式

常做操作:
初始化
判断是否为空
插入元素
删除元素
返回元素的个数

顺序存储

顺序存储的本质为数组,其数据在内容中是有顺序的进行存储
缺陷:长度受到限制,其存储的数据位置是连续的

1、创建结构体

#define MAXSIZE 1000
#define ERROR -1
#include <stdbool.h>

typedef struct Node {
   
	int Data[MAXSIZE];
	int size;
}*LNode;

typedef LNode List;

2、初始化列表

//初始化一个列表
List MakeEmpty()
{
   
	List L;
	L = (List)malloc(sizeof(struct Node));
	L->size = -1;
	return L;
}

3、元素的查找

//查找元素
int Find(List L, int X)
{
   
	int i=0;
	while (i < L->size < MAXSIZE && L->Data[i] != X)
	{
   
		i++;

	}
	if (i > L->size) return ERROR;
	else
		return i;

}

4、插入元素

//插入元素
bool Insert(List L, int i, int X)
{
   
	int j;
	if (L->size == MAXSIZE)
	{
   
		printf("表满");
	}
	if (i<1 || i>L->size + 2)
	{
   
		printf("输入有误");
		return false;
	}
	
	for (j = L->size; j > i - 1; j--)
	{
   
		L->Data[j] = L->Data[j - 1];
	}
	L->Data[i - 1] = X;
	L->size++;
	return true;

}

5、删除元素–根据序号

//删除---根据序列
bool Delete(List L, int i)
{
   
	int j;
	if (i<1 || i>L->size + 1)
	{
   
		printf("序列错误");
		return false;
	}

	for (j = i-1; j < L->size; j++)
	{
   
		L->Data[j] = L->Data[j+1];
	}
	L->size--;
	return true;
}

链式存储

单向链表
1、建立结构体
存储结点

typedef struct LNode* PtrTolNode;
struct LNode {
   
	int Data;
	PtrTolNode Next;

};
typedef PtrTolNode Position;</
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值