数据结构----顺序表,链表基础概念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41026740/article/details/83043294

数据结构:将数据组织在内存中的一种形式。

一、线性存储

特点:除了第一个没有前驱,最后一个没有后继,其他的结点都只有一个前驱和一个后继。

线存储分为顺序存储,链式存储。

顺序存储:在内存中连续的存储空间。如:顺序表。

链式存储:元素在内存中的位置并不连续。如:单链表,双向链表。

二、非线性存储

图:一个数据可能有n个后继,有m个前驱。

树:有一个前驱,n个后继。

二叉树:有一个前驱,两个后继。

对数据的操作有初始化,增删改查,销毁等。

扫描二维码关注公众号,回复: 3648633 查看本文章

数组:大小固定。分配在栈区或堆区。

           数组名记录数组的起始位置。

顺序表:大小可以改变。分配在堆区。

          1. 用elem记录起始位置。

          2.size表示当前顺序表的总大小。

          3.count当前顺序表中元素的个数。

 顺序表特点:1.存储空间连续,并且没有浪费空间。

                      2.插入数据元素时,可能会存在空间的扩充。插入位置之后的元素需要后移。

                      3.删除数据元素时,数据元素也会挪动。

三、单链表

特点:数据存储空间不连续,每一个元素存储一个结点。    结点有数据域和指针域(下一个结点的起始地址)。

单链表带头结点初始化如下:

struct Node
{
	ElemType data;
	struct Node *next;
 };
 
 struct LinkList
 {
 	struct Node head;
 	int count;//结点个数 
 };
 

单链表不带头结点初始化如下:

struct Node
{
	ElemType data;
	struct Node *next;
 }Node;
 
 struct LinkList
 {
 	Node *head;
 	int count;
 };
 

      四、顺序表与链表的区别

1.顺序表存储空间连续(虚拟地址空间连续,物理存储空间不连续),链表存储空间不连续。

2.链表相比于顺序表稍微有点浪费空间(每个数据元素存储还需额外的存储指针域)。

3.链表插入或删除数据时,原始数据不需要移动,顺序表反之。

4.顺序表的访问方式简单,速度较快。

猜你喜欢

转载自blog.csdn.net/qq_41026740/article/details/83043294