C语言二级-----公共基础的部分总结2

  1. 线性表及顺序存储结构

    1. 一个非空线性结构应满足两个条件:①有且只有一个根节点;②每个节点最多有一个前件,也最多有一个后件。不满足以上两个条件的数据结构就称为非线性结构。数据结构是否为线性结构与存储空间是否连续无关

    2. 循环结构没有根节点和叶子节点

    3. 所谓有序表是指在顺序存储空间内连续存放的元素序列

    4. 有序表既可以采用顺序存储结构存储在连续的存储空间内,又可以采用链式存储结构存储在不连续的存储空间内

    5. 能使用二分法查找的线性表必须满足两个条件:①用顺序存储结构;②线性表是有序表,

    6. 二叉树属于非线性结构,但满二叉树与完全二叉树可以按层次进行顺序存储。

    7. 双向链表具有两个指针域,但属于线性结构

    8. 循环队列是队列的一种顺序村相互结构

    9. 最坏情况为删除有序顺序表第一个元素,需要将第2个到第n个元素向移动一个位置,即需要移动n-1个元素

    10. 最坏情况为插入有序顺序表第一个元素,需要将所有元素向移动一个位置,即需要移动n个元素

    11. 顺序表具有两个基本特征∶①表中所有元素所占的存储空间是连续的,每一个数据元素所占字节相同;②表中各数据元素在存储空间中是按逻辑顺序依次存放的。

    12. 能使用二分法查找的线性表必须满足两个条件:用顺序存储结构;线性表是有序表

  2. 栈和队列

    1. 栈的入栈和退栈原则“先进后出,后进先出”

    2. 队列的入队和退队原则“先进先出,后进后出”

    3. 队列--队尾指针rear;队头指针front;从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。

    4. 循环队列的存储空间为Q(1:m),当front=rear=m时,循环队列为空;当front=rear且不等于m时,循环队列可能为空,也可能为满。当为空时,可以插入元素;当为满时,插入元素会发生"上溢"错误。

    5. 若循环队列的存储空间为(1.m),在循环队列运转起来后,如果front<rear,则队列中的元素个数为rear-front;如果front>rear,则队列中的元素个数为rear-front+m

    6. 在栈中,栈顶指针top动态反映了栈中元素的变化情况,

    7. 在循环队列中,队尾指针和队头指针的动态变化决定队列的长度

    8. 链式存储结构中,无论是循环链表还是线性链表,插入和删除元素时,只需要改变相应位置的结点指针即可,头指针和尾指针无法确定链表的长度

    9. 链式存储的存储单元是不连续的,因为是不连续的存储空间,所以指针将不会有规律地连续变化

  3. 线性链表

    1. 线性表链式存储结构的特点是,用一组不连续的存储单元存储线性表中的各个元素。线性链表的存储单元是任意的,即各数据结点的存储序号可以是连续的,也可以是不连续的。

    2. 带链的栈是具有栈属性的链表。当top=bottom=NULL时,栈为空;当top=bottom且不等于NULL时,栈中存在一个元素,其他情况无法判断。

    3. 带链的队列是采用链式存储结构表示的队列。当front=rear=NULL时,队为空;当front=rear且不等于NULL时,队列中存在一个元素,其他情况无法当断。

      1. 循环链表中,只要指出表中任何一个结点的位置,就可以从它出发不重复地访问到表中其他所有的结点。

      2. 单向链表只有从头指针开始,沿各结点的指针扫描链表中的所有结点

      3. 双向链表任何一个结点位置出发就可以访问到表中其他所有结点,但会出现重复访问;属于线性结构

      4. 二叉链表根结点开始可以访问树中所有结点,但是从其他结点位置出发,只能访问到它后面的结点,无法访问前面的结点;属于非线性结构

    4. 循环链表是—种链式存储结构,循环队列是队列的一种顺序存储结构。

    5. 多重链表具有两个及两个以上的指针域,但多重链表既可以表示线性结构,也可以表示非线性结构线性链表是指线性表的链式存储结构,是否为线性链表与指针域的个数无关

    6. 顺序存储结构可以存储非线性结构(如满二叉树和完全二叉树),链式存储结构也可以存储线性结构(如栈和队列)

    7. 带链栈的栈底指针在栈空时值为NULL,在栈不为空时指向栈底结点,值为其地址

    8. 由于表头结点是循环链表所固有的结点,因此,即使在表中没有数据元素的情况下,表中也至少有一个结点(表头结点)存在,从而使空表和非空表的运算统一

    9. 线性链表在插入(删除)过程中不发生数据元素移动的现象

    10. 二维数组、循环队列均为线性结构,采用顺序存储;二叉链表属于非线性结构,采用链式存储。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_61156831

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值