zoukankan      html  css  js  c++  java
  • 数据结构总结

    数据结构小结:
    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)后序遍历:左子树——》右子树——》根节点(从下到上,先左后右)

  • 相关阅读:
    (二)正反向代理
    (一)服务器架构详解
    斐波那契数列
    旋转数组的最小值
    23 入栈 出栈
    重建二叉树
    22 大端序和小端序
    反转单链表
    替换空格
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/3093480.html
Copyright © 2011-2022 走看看