数据结构--线性表

线性表#

一个有限序列,可以为空
除第一个和最后一个,其余每个元素都有一个且仅有一个直接前驱和直接后继

特点#

1.存在唯一一个被称为“第一个”和“最后一个”的数据元素
2.除第一个(最后一个)外,结构中的每个数据元素均只有一个前驱(后继)

顺序表的创建#

#define Maxsize 100
typedef struct{
	ElemType * data;
	int lenght;
}SqList;
typedef struct{
	ElemType data[Maxsize];
	int lenght;
}SqList;

1.初始化

void Init(Sqlist* & L){
	L=(Sqlist*)malloc(sizeof (Sqlist));
	L->lenght=0;
}

2.销毁线性表

void DestroyList(Sqlist* &L){
	free(L);
}

链式表#

typedef struct LNode{
	ElemType data;
	struct LNode * next;
}List;

头结点无元素

1.初始化

void Init(List* &L){
	L=(List*)malloc(sizeof (List));
	L->next=NULL;
}

2.销毁线性表

void DestroyList(Sqlist* &L){
	List* pre=L,*p=L->next;
	while(p!=NULL){
		free(pre);
		pre=p;
		p=pre->next;
	}
	free(pre);
}

双链表#

双链表的节点中有两个指针域,一个指向直接后继,一个指向直接前驱

typedef struct DNode{
	ElemType data;
	struct DNode* pre;
	struct DNode* next;
}DLinkNode;

单循环链表和双循环链表#

分别对应双链表和单链表,都是尾指针指向头,不需要头结点

静态链表#

类似于yxc的链表创建方法

typedef struct{
	ElemType data;
	int cur;
}component,List[Maxsize];

存储密度#

节点/存储量
posted @   lxp_blog  阅读(118)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示
主题色彩