加载中...

数据结构--线性表

线性表

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

特点

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 @ 2022-03-10 21:06  lxp_blog  阅读(116)  评论(0编辑  收藏  举报