自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 二叉堆(优先队列)的基本操作(c语言)

在了解二叉堆之前,先来说一下优先队列。插入和删除最小者,它的工作是找出,返回,删除优先队列中的最小者。要实现这种数据结构,除了二叉堆外还有许多方法。1,使用一个链表存储这个序列,插入直接在表头或者表尾插入既可,时间复杂度为o(1),删除最小元操作可以遍历链表,找到最小的元素,然后用链表的删除操作将其删除,时间复杂度为o(n),这样做的弊端是如果我们要频繁地删除最小元,这个办法就相对来说不太好了。2,使用二叉查找树。

2024-03-20 20:33:01 782 1

原创 二叉平衡树(AVL树)的基本操作(c语言)

用二叉查找树的基本操作,这篇文章中的插入和删除方法对一颗树进行操作时,难免会出现树形结构向一边倒的情况,比如依次插入1,2,3,4,5就会这样,因为根据我们以前的方法,会一直往右边插入,这样的弊端就是对5节点的操作将至少花费o(n)。AVL树就是解决这种问题,至于解决问题的方式便是旋转。

2024-03-15 11:09:06 930

原创 二叉查找树的基本操作(c语言)

其次插入还必须满足二叉查找树的性质**左子树小于根节点,根节点小于右子树。**于是我们从根节点开始找,**如果插入元素小于根节点,则从左边插入,如果插入元素大于根节点,则从右边插入。,但是即使这样也要保证二叉查找树的基本性质**左子树小于根节点,根节点小于右子树。**这样我们分三种情况讨论。,若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值。,若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值。结点的值,只是让值相等,不改变树形的结构(与情况2完全相等的操作区别)

2024-03-08 22:02:29 1106

原创 链表的基本操作(c语言)

如果只是在尾部插入,或者头部插入只要按在main函数的方法既可,但是应该考虑一种可以。首先规定,如果找不到这个数,或者表为NULL,我们便什么都不做,否则删除这个节点。函数的链表删除方法,但这并不比上面的方法好,所以在总代码里面不会有它。作为参数传入函数的话,就相当于尾部插入,头部插入同理。,如果找到了返回该节点的地址,否则返回NULL(接下来的函数接受链表任意节点的指针。接下来的函数接受已经创建好的链表。下面的函数可以打印一个链表的结构。的指针,以及要查找的数字。的前一个节点,我们在。

2024-03-04 20:24:47 321

原创 根据树的遍历结果创建一颗二叉树(c语言)

二叉树的后序遍历: 在遍历过程中,节点的访问顺序是:先遍历左子树,然后遍历右子树, 最后访问根结点。对于任何给定的节点,它的左子树和右子树也按照同样的方式遍历。二叉树的先序遍历:在遍历过程中,节点的访问顺序是:先访问根节点,然后遍历左子树,最后遍历右子树。对于任何给定的节点,它的左子树和右子树也按照同样的方式遍历。二叉树的中序遍历:在遍历过程中,节点的访问顺序是:先遍历左子树,然后访问根结点,最后遍历右子树。对于任何给定的节点,它的左子树和右子树也按照同样的方式遍历。,下面的例子用**#**表示空树。

2024-03-02 15:52:52 344

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除