zoukankan      html  css  js  c++  java
  • 《数据结构》栈和队列

    一章讲的主要是栈和队列。从数据结构的角度上说,栈和队列也是线性表,只不过是操作受限的线性表我觉的这句话很有意思,就好像说现在的我还是以前的我,只不过我随着长大好像也开始操作受限了,但是我还是我,可是为什么会这样呢?

    虽然这一章仍旧是线性表,不过抽象的程度上有了加深,所以我在这节课上学的稍显吃力。枯了;

     

    老习惯,先奉上图。

     

     

    其实在于理论课我觉得是听得头头是道,津津有味。可是一到实操我好像就是一脸懵逼的,看来自己还是太弱了,没有一点点的积累和经验。

    好吧,下面补充一下关于栈和队列的一些知识点。

    #栈:

    1、栈分为链栈和顺序栈;

    2、顺序栈需要有栈顶指针和栈底指针;

    3、顺序栈缺点是受到最大空间的限制。所谓栈溢出攻击也就来源于此;

    4、链栈是没有必要设置头结点的,因为在删除操作有无头结点都要考虑边界与非边界的问题,而在插入操作时,无头结点的链栈可以保持边界与非边界代码的一致性,而有头结点则不行;

    5、链栈基本不需要考虑栈满的问题。

    #队列:

    1、存储类别和顺序栈相似都是占用一片连续的的存储单元;

    2、并且在队列上约定-->初始化创建空队列是=时,令front = near =0,每当插入新的队列尾元素时,尾指针rear增加1....在此类插入删除的操作中,头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置;

    3、So,对于循环队列不能以头尾指针的值是否相同来辨别队列空间是“满”还是“空”。

    ##栈和队列:

    1、出栈出队前都要判断是否为空,入队入栈前都要判断是否为满;

    2、栈和队列插入操作都是限定在表尾进行而删除操作就不同->栈的删除操作在表尾进行,队列的删除操作在表头进行

    3、暂时没想到。

     

     

    实践操作太弱,建个链表都要半天。

     

    写个博客的目标还是有达到的;

    接下来就是慢慢提升自己的编程实践操作;

    原来我也是栈和队列。

     

     

     

     

     

  • 相关阅读:
    Nginx的配置详解
    马拉车算法
    C++ 智能指针(shared_ptr/weak_ptr)原理分析
    大小端(内存、寄存器、CPU)
    printf函数输出字符串乱码问题
    ArcGIS中应用Expressions标注(Label)之二—使用外部数据库中数据标注要素
    Cisco Aironet ap3g1/ap3g2 8.5版本胖AP固件网页配置教程
    Golang mapstructure
    NDB 和 InnoDB 的不同
    高质量:Makefile
  • 原文地址:https://www.cnblogs.com/jyf2018/p/10630384.html
Copyright © 2011-2022 走看看