• 数据结构总结


    数据结构小结:
    1,线性表
    静态线性表:
    结构(包含一个数组,长度);下标的计数是从1到MAXSIZE
    链表:
    链表具有头节点,头节点一般不放置具体的元素,头指针指向头节点,链表为空的标志为头节点的后继为空。
    2,栈(后进先出)
    静态栈:
    栈结构体中包含数组和栈顶指针,栈顶指针指向栈顶元素。(数组从0开始计时);初始化的时候栈顶指针=-1;栈的长度为top指针+1;
    链栈:
    栈顶指针依旧指向栈顶元素。(指针方向是从栈顶指向栈尾)
    3,队列
    静态循环队列:
    队列具有头指针和尾指针,头指针指向头部的第一个元素,尾指针指向尾部元素的下一个元素。
    初始化的时候:q->front=q->rear=0;
    队列的长度为:(q->rear-q->front+MAXSIZE)%MAXSIZE;
    队列为空的判定:q->rear==q->front;
    队列为满的判定:(q->rear+1)%MAXSIZE==q->front;
    链队列:
    队列具有头指针和尾指针,头指针指向队列头元素的前一个,尾指针指向尾元素
    初始化的时候:q->front=q->rear=NULL:
    队列为空的判定:q->front==q->rear;

    4、二叉树

    二叉树的相关性质:

    1,在二叉树的第i层上至多有2的(i-1)次方个节点。

    2,深度为k的二叉树至多有2的(k)次放-1个节点

    3,任何一棵二叉树,如果其终端节点数目为n0,度为2的节点数为n2,那么n0=n2+1;

    4,具有n个节点的完全二叉树的深度为【log2(n)】+1;简单道理,因为2的k-1次方-1<n<=2的k次方-1;

    5,如果对一棵有n个结点的完全二叉树(其深度为【log2(n)】+1)的结点按照层序编号,对任何一个结点有:

    (1)如果i=1,那么结点i是二叉树的根,无双亲;如果i>1,则其双亲是节点【i/2】;

    (2)如果2i>n,则结点没有左孩子,否则其左孩子是节点2i

    (3)如果2I+1>n,则结点没有右孩子,否则其右孩子是节点2i+1;

    二叉树的三种遍历方法:

    (1)前序遍历:根节点——>左子树 ——>右子数(从上到下,先左后右)

    (2)中序遍历:左子树——》根节点——》右子树(从下到上,先左后右)

    (3)后序遍历:左子树——》右子树——》根节点(从下到上,先左后右)

  • 相关阅读:
    《我是一只IT小小鸟》
    &&、||、?:、,四个运算符的求值顺序
    C Traps and Pitfalls 练习4.2
    “检测到LoaderLock”的解决办法
    VS中代码对齐等快捷键
    贪心 Greedy Algorithms
    这些最基本的程序优化方法你用过吗?
    内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理][转载]
    [原创]让对话框的控件支持tooltips
    Debug 运行正常但 Release 失败的问题,Debug 和 Release 编译方式的本质区别
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/3093480.html
Copyright © 2020-2023  润新知