数据结构总结

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

原文地址:https://www.cnblogs.com/bobodeboke/p/3093480.html