2024计算机考研:专业课核心考点总结(一)
核心考点一:队列和栈结构的概念理解
栈是仅限制在表的一端进行插入和删除运算的线性表,称插入、删除这一端为栈顶。表中无元素时为空栈。栈的修改是按后进先出的原则进行的。通常栈有顺序栈和链栈两种存储结构。
队列是一种运算受限的线性表,插入在表的一端进行,而删除在表的另一端进行,允许删除的一端称为队头,允许插入的一端称为队尾,队列的操作原则是先进先出的。队列也有顺序存储和链式存储两种存储结构。
核心考点二:线性表中单链表相关算法设计与实现一些基础但又重要的单链表相关算法,如:
1.打印单链表,void PrintList(List list);使用一个指针遍历所有链表节点。
2.两个升序链表,打印 tarList 中的相应元素,这些元素的序号由SeqList指定,void PrintLots(List tarList,List seqList);使用两个指针分别遍历两个链表,每次取出序列链表的一个序号后,根据该序号,到达目标链表指定节点。
3.两个升序链表的交集﹐List Intersect(List 11,List 12);
4.两个升序链表的并集,List Join(List l1,List 12);
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取下整。