栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > 资讯 > 高等教育 > 考研常识

2021计算机考研:数据结构核心考点汇总

2021计算机考研:数据结构核心考点汇总

队列和栈结构的概念理解

栈是制在表的一端进行插入和删除运算的线性表,称插入、删除这一端为栈顶。表中无元素时为空栈。栈的修改是按后进先出的原则进行的。通常栈有顺序栈和链栈两种存储结构。

 

队列是一种运算受限的线性表,插入在表的一端进行,而删除在表的另一端进行,允许删除的一端称为队头,允许插入的一端称为队尾,队列的操作原则是先进先出的。队列也有顺序存储和链式存储两种存储结构。

 

线性表中单链表相关算法设计与实现

 

一些基础但又重要的单链表相关算法,如:

 

1.打印单链表,void PrintList(List list); 使用一个指针遍历所有链表节点。

 

2.两个升序链表,打印tarList中的相应元素,这些元素的序号由SeqList指定,void PrintLots(List tarList, List seqList); 使用两个指针分别遍历两个链表,每次取出序列链表的一个序号后,根据该序号,到达目标链表指定节点。

 

3.两个升序链表的交集 ,List Intersect(List l1, List l2);

 

4.两个升序链表的并集 ,List Join(List l1, List l2);

 

5.单链表就地置逆,void Reverse(List l); 使用三个指针表示前驱,当前和后继节点,每次将当前节点的Next指向前驱节点,然后向后遍历直到链表末尾。

 

二叉树的遍历

 

遍历的过程就是把非线性结构的二叉树中的结点排成一个线性序列的过程。

 

二叉树遍历方法可分为两大类,一类是“宽度优先”法,即从根结点开始,由上到下,从左往右一层一层的遍历;另一类是“深度优先法”,即一棵子树一棵子树的遍历。

 

从二叉树结构的整体看,二叉树可以分为根结点,左子树和右子树三部分,只要遍历了这三部分,就算遍历了二叉树。设D表示根结点,L表示左子树,R表示右子树,则DLR的组合共有6种,即DLR,DRL,LDR,LRD,RDL,RLD。若限定先左后右,则只有DLR,LDR,LRD三种,分别称为先(前)序法(先根次序法),中序法(中根次序法,对称法),后序法(后根次序法)。三种遍历的递归算法如下:

 

1.先序法(DLR)

 

若二叉树为空,则空操作,否则:访问根结点,先序遍历左子树,先序遍历右子树。

 

2.中序法(LDR)

 

若二叉树为空,则空操作,否则:中序遍历左子树,访问根结点,中序遍历右子树.

 

3.后序法(LRD)

 

若二叉树为空,则空操作,否则:后序遍历左子树,后序遍历右子树,访问根结点。

 

完全二叉树中有关结点个数计算

 

完全二叉树的定义:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。

 

完全二叉树的叶子数为(n + 1) / 2取下整。

 

森林与二叉树之间的转换以及转换过程中结点之间的关系

 

将一棵树转换为二叉树的方法是:

 

1.树中所有相邻兄弟之间加一条连线。

 

2.对树中的每个结点,只保留其与第一个孩子结点之间的连线,删去其与其它孩子结点之间的连线。

 

3.以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。

 

森林转换为二叉树的方法如下:

 

1.将森林中的每棵树转换成相应的二叉树。

 

2.第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子,当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。

 

树和森林都可以转换为二叉树,二者的不同是:树转换成的二叉树,其根结点必然无右孩子,而森林转换后的二叉树,其根结点有右孩子。将一棵二叉树还原为树或森林,具体方法如下:

 

1.若某结点是其双亲的左孩子,则把该结点的右孩子、右孩子的右孩子、……都与该结点 的双亲结点用线连起来。

 

2.删掉原二叉树中所有双亲结点与右孩子结点的连线。

 

3.整理由1、2两步所得到的树或森林,使之结构层次分明。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/news/22410.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号