软件设计师【数据结构与算法基础知识及相关试题】

一.图

  

  

  

二.树

  

   

  

  

  

三.排序算法

  1.稳定排序算法&不稳定排序算法

  

  2.插入排序

  

  

  3.选择排序

  

   4.交换排序

  

   

   5.归并排序

  

  

  6.基数排序

  

  

  7.各排序算法的特点

  

四.其它算法

  1.递推法

  

  2.回溯法

  

 

  

  3.贪婪法

  

  4.分治法

  

  5.动态规划法

  

五.基础试题

  1.

  

  2.

  

  3.

  

  

  4.

  

  

  5.

  

  6.

  

  7.

  

  

  8.

  

  

  9.

  

  

  

六.备注

  1.数据结构可以用一个二元组{D,R}表示。其中D是某种数据对象,是数据结构(成为节点)的非空有限集合;R是该对象中所有数据成员之间的关系的有限集合。

  2.稀疏矩阵转一维数组坐标变换:

  

  3.线性表主要的存储结构有两种:顺序存储结构和链式存储结构。采用顺序存储结构,就称为顺序表(常用数组实现);采用链式存储结构则称为线性链表(即链表)。

  4.顺序存储线性表的最大优点就是随机存取线性表中的任意一个节点,缺点主要有两个,一是此线性表的大小通常是固定的,不利于任意增加或减少线性表的节点个数;二是插入和删除线性表的节点时,要移动数组中的其它元素,操作复杂。

  5.队列也是一种特殊的线性表,只允许在一端进行插入,另一端进行删除运算。允许删除运算的那一端称为队首,允许插入运算的一端称为队尾。

  6.循环队列在队列为空的初态为head=tail=0。在循环队列中,当tail赶上head时,队列满。反之,当head赶上tail时,队列变为空。这样队空和队满的条件都是head=tail,这样就会给程序判别队空和队满带来麻烦。因此,可采用当队列只剩下一个空闲节点的空间时,就认为是队列已满的简单办法,以区别队空和队满。即队空为head=tail,队满为head=tail+1。

  7.栈是另一种特殊的线性表,栈只允许在同一端进行插入和删除操作。允许插入和删除的一端为栈顶,另一端为栈底。

  8.采用顺序实现的栈中,初始化运算负责将栈顶编码top初始化为"-1",使栈为空,在进栈操作时,需要判断栈是否满(top=N-1说明栈满),如果未满,则将新元素入栈,并将top加1;在出栈操作时,需要判断栈是否为空(top=-1说明为空),如果非空,则取出栈顶元素,将top减1。

  9.顺序栈的缺点是为了避免栈满发生溢出,需预先为栈设立足够大的空间,但太大会造成空间浪费,太小又容易发生溢出。

  10.栈也可以用链表实现,用链表实现的栈称为链接栈。链表的第一个节点为顶节点,链表的首节点就是栈顶指针top,top为NULL的链接栈为空栈。

  11.字符串的最后一个有效字符之后有一个字符串结束标志,记为"\0"。

posted @ 2018-07-21 16:57  云山之巅  阅读(479)  评论(0编辑  收藏  举报