![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
文章平均质量分 71
weixin_49240038
这个作者很懒,什么都没留下…
展开
-
算法导论读书笔记-链表
链表 链表是一种数据结构,其各对象按线性时间排列,链表的顺序是由各个对象里的指针决定的。数组的线性顺序由数组的下标决定。 双向链表L的每个元素都是一个对象,每个对象有一个关键词key和两个指针:next和prev。设x是链表的一个元素,x.next指向它的后继元素,x.prev指向它的前驱元素。x.prev=NIL,元素x没有前驱,是链表的第一个元素,即元素的头(head);x.next=NIL,元素x没有后继,是链表的最后一个元素,即元素的尾(tail)。属性L.head指向链表的第一个元素,L.head原创 2021-04-24 20:58:09 · 89 阅读 · 0 评论 -
算法导论读书笔记-散列表
散列表 直接寻址表 当关键字的全域U比较小时,直接寻址是一种简单而有效的技术。如果储存空间允许,我们可以提供一个数组,为每个可能的关键字保留一个位置,以利用直接寻址的优势。 假设某应用要用到一个动态集合,其中每个元素都是取自全域U={0,1,…,m-1}中的一个关键字,这里m不是一个很大的数。另外,假设没有两个元素具有相同的关键字。 为表示动态集合,我们用一个数组,或称为直接寻址表,记为T[0…m-1].其中每个位置,称为槽,对应全域U中的一个关键字。槽k指向集合中一个关键字为k的元素,如果该集合中没有关键原创 2021-04-24 20:57:25 · 65 阅读 · 0 评论 -
栈和队列
栈和队列 栈和队列都是动态集合。在栈中,被删除的是最近插入的元素(后进先出)。在队列中,被删除的是集合中存在时间最长的元素(先进先出)。 栈 栈上的insert操作称为压入(push),delete操作称为(pop)。 可以用一个数组S[1…n]来实现一个最多可以容纳n个元素的栈,该数组有一个属性S.top,指向最新插入的元素。栈中包含的元素为S[1…S.top],其中S[1]是栈底元素,S[S.top]是栈顶元素。 S.top=0时,栈中不包括任何元素,即栈为空。要测试一个栈是否为空可以用查询操作stac原创 2021-04-02 17:56:41 · 50 阅读 · 0 评论 -
二叉搜索树
二叉搜索树定义二叉树的遍历二叉搜索树的基本操作搜索插入删除最大关键词元素和最小关键词元素后继和前驱算法导论部分题解其他问题平衡二叉搜索树将有序数组转化为二叉搜索树 定义 1.若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值。 2.若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值。 3.任意节点的左、右子树也分别为二叉查找树。 4.没有键值相等的节点。 二叉树的遍历 先序遍历:输出的根的关键词位于左子树的关键字值和右子树的关键字值之前。 //方法一:递归法(一) var原创 2021-03-30 11:21:26 · 109 阅读 · 2 评论