数据结构基础

数据结构图:


1、线性表
   概念:数据元素的排列方式是线性。
   分类:分类规则是根据上图中元素的存储结构来划分的。
1)顺序表

   基本思想:元素的存储空间是连续的。在内存中是以顺序存储,内存划分的区域是连续的。存储结构如下图:


2)链表

   基本思想:元素的存储空间是离散的,单独的(物理),它们可以通过在逻辑上指针的联系使得它成为了整体的链表。存储结构如下图:


  1.单链表:


   2.循环链表:


  3.双链表(双向循环链表):


三者的区别(从上面三个图我们可以总结出来):
    1、它们都有数据域(data(p))和指针域(next(p)),但是从图中可以看出双链表有两个指针域,一个指向它的前节点,一个指向它的后节点。
    2、单链表最后一个节点的指针域为空,没有后继节点;循环链表和双链表最后一个节点的指针域指向头节点,下一个结点为头节点,构成循环;
    3、单链表和循环链表只可向一个方向遍历;双链表和循环链表,首节点和尾节点被连接在一起,可视为“无头无尾”;双链表可以向两个方向移动,灵活度更大。



2、栈

基本思想:后进先出(先进后出)即栈中元素被处理时,按后进先出的顺序进行,栈又叫后进先出表(LIFO)。

如下图所示:


  举例:放在箱子里的一摞书,只能从书顶上拿走一本书,书也只能放在顶上。


3、队列

  基本思想:先进先出即先被接收的元素将先被处理,又叫先进先出表(FIFO)。如下图所示:


  举例:排队进车站时,安检行李,先进去的最先出来,后进去的后出来。
分类:
1.顺序队列
顺序队列的操作,要判断队满和队空的标志,从图中我们可以总结得到:
      1.队空:head = tail
      2.队满:tail = m
2.循环队列
循环队列的操作,要判断队空和队满的情况,从图中我们可以总结得到:
    1.队空:head = tail

    2.队满:tail + 1 = head(在队列中会留一个空着的空间,所以要加1)




评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值