浙大数据结构mooc知识点总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35564813/article/details/88603483

数据结构

线性结构

线性表

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

堆栈

在这里插入图片描述

在这里插入图片描述

队列

在这里插入图片描述

树的定义

在这里插入图片描述

在这里插入图片描述

二叉树及存储结构

在这里插入图片描述

在这里插入图片描述

n0+n1+n2=0*n0+1*n1+2*n2+1化简得n0=n2+1

二叉树的遍历

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

后序遍历:对于任一结点P,将其入栈,然后沿其左子树一直往下搜索,直到搜索到没有左孩子的结点,此时该结点出现在栈顶,但是此时不能将其出栈并访问, 因此其右孩子还为被访问。所以接下来按照相同的规则对其右子树进行相同的处理,当访问完其右孩子时,该结点又出现在栈顶,此时可以将其出栈并访问。这样就 保证了正确的访问顺序。可以看出,在这个过程中,每个结点都两次出现在栈顶,只有在第二次出现在栈顶时,才能访问它。因此需要多设置一个变量标识该结点是 否是第一次出现在栈顶。

void postOrder2(BinTree *root)    //非递归后序遍历
{
    stack<BTNode*> s;
    BinTree *p=root;
    BTNode *temp;
    while(p!=NULL||!s.empty())
    {
        while(p!=NULL)              //沿左子树一直往下搜索,直至出现没有左子树的结点 
        {
            BTNode *btn=(BTNode *)malloc(sizeof(BTNode));
            btn->btnode=p;
            btn->isFirst=true;
            s.push(btn);
            p=p->lchild;
        }
        if(!s.empty())
        {
            temp=s.top();
            s.pop();
            if(temp->isFirst==true)     //表示是第一次出现在栈顶 
             {
                temp->isFirst=false;
                s.push(temp);
                p=temp->btnode->rchild;    
            }
            else                        //第二次出现在栈顶 
             {
                cout<<temp->btnode->data<<" ";
                p=NULL;
            }
        }
    }    
}

在这里插入图片描述

在这里插入图片描述

由两种遍历序列确定二叉树,必须要有中序遍历才行。

在这里插入图片描述

判别二叉树同构

给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二叉搜索树

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

平衡二叉树

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

完全二叉树实现的优先队列

哈夫曼树

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

并查集

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如何表示图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

图的遍历

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最短路径问题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最小生成树MST

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

拓扑排序

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

排序

简单排序

稳定性:任意两个相等的数据,排序前后的相对位置不发生改变

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

希尔排序

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

堆排序

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

归并排序

在这里插入图片描述

在这里插入图片描述

快速排序

在这里插入图片描述

在这里插入图片描述

基数排序

在这里插入图片描述

在这里插入图片描述

排序算法比较

在这里插入图片描述

散列

散列表

在这里插入图片描述

散列函数的构造

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

冲突处理方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

散列表的性能分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35564813/article/details/88603483
今日推荐