zoukankan      html  css  js  c++  java
  • 考研复试面试准备——数据结构篇

    第1章——绪论

    数据结构的三要素

    img

    什么是抽象数据类型

    一些数据对象以及附加在这些数据对象上的集合的操作

    第2章——线性表

    尾插法、头插法建立单链表

    尾插法建立单链表,n个元素存储在数组a中

    void createListR(LNode *&C,int a[],int n){
    	LNode *r,*s;
    	C=(LNode*)malloc(sizeof(LNode));
    	C->next=NULL;
    	r=C;
    	for(int i=0;i<n;i++){
    		s=(LNode*)malloc(sizeof(LNode));
    		s->val=a[i];
    		r->next=s;
    		r=r->next;
    	}
    	r->next=NULL;
    }
    

    头插法

    void createListF(LNode *&C,int a[],int n){
    	LNode *s;
    	C=(LNode*)malloc(sizeof(LNode));
    	C->next=NULL;
    	for(int i=0;i<n;i++){
    		s=(LNode*)malloc(sizeof(LNode));
    		s->val=a[i];
    		s->next=C->next;
    		C->next=s;
    	}
    }
    

    栈和队列的区别

    栈:只能在一端进行插入或删除操作的线性表

    队列:操作受限的线性表,仅允许一端插入,另一端删除

    第5章——数组、矩阵与广义表

    稀疏矩阵如何存储

    三元组、伪地址表示法(邻接表、十字链表)

    第6章——树与二叉树

    给定n个结点,能构造多少中不同的二叉树

    Catlan函数:$ h(n)=frac{C_{2n}^{n}}{n+1}$

    树的相关概念

    1. 满二叉树:除了最后一层外,其他结点都有两棵子树
    2. 完全二叉树:除了最后一层外,其他任何一层的结点数都达到最大值,且最后一层只在右侧缺少结点
    3. 平衡二叉树:任何一个结点的左右子树高度不超过1

    第7章——图

    最小生成树和最短路径

    1. 迪杰斯特拉算法:求单源最短路径,边的权值不能为负
    2. 弗洛伊德算法:求任意顶点之间的最短路径
    3. 普里姆算法:无向图,稠密图
    4. 克鲁斯卡尔算法:无向图、稀疏图、并查集

    第8章——排序

    各种排序算法的性能

    1. 时间复杂度

      快些归队:(nlog_{2}n),其他:(n^{2})

    2. 空间复杂度

      快排:logn,归并:n,基数:r(关键字基的个数),其他都是1

    3. 算法稳定性

      不稳定:快些选一堆

    第9章——查找

    B树和B+树

    B树,又称多路平衡查找树, B 树中所有结点的孩子个数的最大值称为B 树的阶,通常用m 表示。一棵m 阶B 树或为空树,或为满足如下特性的m 叉树:

    1. 树中每个结点至多有m 棵子树,即至多含有m-1 个关键字。
    2. 若根结点不是终端结点,则至少有两棵子树。
    3. 除根结点外的所有非叶结点至少有「m/2] 棵子树,即至少含有「m/2]- 1 个关键字。
    4. 所有的叶结点都出现在同一层次上,并且不带信息(可以视为外部结点或类似千折半查找判定 树的查找失败结点,实际上这些结点不存在,指向这些结点的指针为空)。

    B 树是所有结点的平衡因子均等于0 的多路平衡查找树。

    B+树是应数据库所需而出现的一种B 树的变形树。
    一棵m 阶的B+树需满足下列条件:

    1. 每个分支结点最多有m 棵子树(孩子结点)。
    2. 非叶根结点至少有两棵子树,其他每个分支结点至少有「m/2]棵子树。
    3. 结点的子树个数与关键字个数相等。
    4. 所有叶结点包含全部关键字及指向相应记录的指针,叶结点中将关键字按大小顺序排列, 并且相邻叶结点按大小顺序相互链接起来。
    5. 所有分支结点(可视为索引的索引)中仅包含它的各个子结点(即下一级的索引块)中 关键字的最大值及指向其子结点的指针。
  • 相关阅读:
    html----响应式布局,左侧栏目固定,右侧内容随着屏幕宽度变化而变化
    es6----set map应用场景
    html----实现元素上下左右居中
    html----怎样实现元素的垂直居中
    html----BFC独立渲染区
    js-----new一个对象的过程
    解决ios手机上传竖拍照片旋转90度的问题
    软键盘遮挡问题
    在不同浏览器中,input里面的输入光标大小表现形式却大不相同
    样式兼容开头
  • 原文地址:https://www.cnblogs.com/xkf97/p/12771881.html
Copyright © 2011-2022 走看看