【复习】软件设计师之数据结构与算法基础

1.常用数据结构:
数组(静态数组,动态数组)
线性表
链表(单向链表,双向链表,循环链表)
队列
栈树(二叉树,查找树,平衡树,线索树,堆)

hash(存储地址计算,冲突处理)


2.常用算法
i:排序算法,查找算法,数值计算法,字符串处理方法,数据压缩算法,递归算法,图的相算法
ii:算法与数据结构的关系,算法效率,算法设计,算法描述(流程图,伪化码,次策表),算法的复杂性




基本数据结构图1.0


3.线性表
单链表:每一个链表都有两个域:数据域和指针域。
循环链表:域单链表相似,但是在单链表中,最后一个指针域为null,而循环链表的指针域指向链表头部(head)。
双链表:不止一个指针,有两个指针域,在两头都存在,从而将链表连接。它为单链表不同在于可以从双向延展。


一.单链表的操作:
1.单链表的借点删除,链表中的结点的前驱结点的指针域跳过,从而指向它的后继结点,完成删除操作。
2.单链表的插入:把新的结点从插入的位置的前驱结点指向该结点,然后由插入的结点指向该位置的后继结点。
注意:插入位置的后继节点可以用p——> next,插入过程应当先将插入的结点指向该位置后继的结点,然后前驱结点指向改插入的结点。


二.双链表的操作
1.双链表的结点删除
2.双链表的结点的插入


5.顺序表与链表的比较:




例题:
若循环队列以数组Q(0,....,m-1)作为其存储结构,变量rear表示循环队列中队尾元素的实际位置,其移动按rear=(rear+1) mod m 进行,变量length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是 C
A.rear-Length  B.(rear-Length+m) mod m
C.(1+rear-length) mod m D.m-Length
posted @ 2018-04-09 08:16  CHANGEMAX  阅读(95)  评论(0编辑  收藏  举报