数据结构基础(二)

数据结构基础(二)

顺序存储

顺序存储是所有的结点元素存放在一块连续的存储区域中,用存储结点的物理位置来体现结点之间的逻辑关系的存储方法。在高级语言中,一块连续的存储空间通常可用一个数组来表示。因此,顺序存储通常用一个数据元素类型的数组来存储。最经典的顺序存储结构是顺序表,将线性结构的元素按序存放在一个数组中。

链式存储

链式存储结构中每个结点除了包含信息域之外,还至少包含 一个指针域。链式存储结构是用指针来体现数据元素之间的逻辑关系的。利用这种结构,各个数据元素的存储单元不再要求是连续的,即可以把逻辑上相邻的两个元素存放在物理上不相邻的存储单元中,还可以在线性编址的存储器中表示非线性关系的结点。

单链表 双向链表 循环链表

链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
以“结点的序列”表示线性表称作线性链表(单链表),单链表是链式存取的结构。

线性表的双向链表存储结构:

typedef struct DuLNode
{
ElemType data;
struct DuLNode *prior,*next;
}DuLNode,*DuLinkList;

循环链表是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。
一个循环单链表其实就是在初始化一个普通单链表时,将其头指针指向表头,而不是指向NULL,这样就构成了一个闭环,以下是使用c++代码初始化一个循环带链表:
循环单链表

typedef struct Node{

int data;

struct Node *next;

}Node,*LinkList;

int ListInit_L(LinkList &L){

L = (LinkList)malloc(sizeof(Node));

L->next = L;

return 1;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值