单链表:数据域、指针域(指向下一个节点的地址),最后一个节点的指针域为null表示没有后续节点。循环链表:最后一个节点指向头部节点。双联表:有两个指针域。
数据结构:①按逻辑结构分类②按存储结构分类;①按逻辑结构分类:1.集合(无逻辑关系)2.线性结构(线性表)——【一维数组、 队列、 栈】;3.非线性结构——树、图、多维数组②按存储结构分类:1.顺序存储结构2.链式存储结构3.索引存储结构4.散列存储结构;——————————————————线性表:顺序表和链表;(按存储结构划分的;)顺序表:内存是按顺序排列下来;链表:内存中有节点,通过一个指针链接起来; 链表又分为:单链表(单向的 最后一个节点的指针域为空)循环链表(和循环链表相似,只是它的最后一个节点的指针域指向第一个头结点);双链表(数据的前后都有指针域,然后两边都链接起来,所以成为双链表);双链表能向前后两个方向移动,而单链表只能向一方移动;链表的操作:节点的删除(前边的跳过要删除的节点,就会删除该节点,删除的节点还需要释放;);;节点的插入(将指针域指向新加节点新加的节点指针域指向后边的指针域);
线性表:单链表、循环链表、双链表 单链表:有很多节点,是单向的连接起来 的,每一个节点有两个域:前面是数据域,后面是指针域(指向下一节点的地址),最后一个节点的指针域为空。朝一个方向移动。 循环链表:与单链表的区别是最后一个节点的指针域指向头结点,形成循环。 双链表:不止一个指针。有两个指针域,从两个不同方向把链表连接起来,形成两条链。可以朝两个方向移动,灵活度高。 链表的操作单链表 结点的删除:直接跨过要删除的那点,使要删除点的前一个节点的指针域指向删除点的下一个节点。并把要删除节点的资源释放掉(free)。 结点的插入:与删除节点相反,修改其前驱节点指针域指向新加入节点,新加入节点的指针域指向后继节点。(注意顺序: 先让新节点指向后继结点,后再让前驱结点指向新节点。)双链表 步骤拆分 把两个操作的第一步都完成
树的总节点数=树的总度数+1前序遍历、后续遍历、层次遍历第I层二叉树对多有2
数据结构与算法基础
1、Hash函数的构造方法(1)直接定址法(2)除余法(3)基数转换法(4)平方取中法(5)折叠法 (6)移位法(7)随机数法2、处理冲突方法(1)开放定址法(线性探查法和双散列函数法)当冲突发生时,使用某种探查技术在散列表中形成一个探序列。沿着该序列查找。直到找到关键字,直到找到关键字或一个开放的地址(地址单元为空)。 (2)拉链法将散列表的每个结点增加一个指针字段,用于链接同义词的字表,链表中的结点都是同义词。3、哈希表的查找
数据结构与算法基础
线索二叉树平衡二叉树 排序二叉树
【哈夫曼树】