- 博客(73)
- 收藏
- 关注
原创 利用二叉树遍历的思想编写一个判断二叉树是否是平衡二叉树的算法
设置二叉树的平衡标记为balance,若 balance 为 1,则是平衡二叉树,若为0,则不是。
2023-12-17 23:05:12
523
原创 设计一个算法,求出指定结点在给定二叉排序树中的层次
在二叉排序树中,每查找一次就下降一层,因此查找该结点所用的次数就是其所在的层数,利用非递归算法。
2023-12-17 22:36:47
584
原创 设有一个带头结点的循环单链表,其结点均为正整数。设计一个算法,反复找出单链表中结点值最小的结点输出,然后将该结点从中删除,直到单链表为空为止,再删除头结点。
【代码】设有一个带头结点的循环单链表,其结点均为正整数。设计一个算法,反复找出单链表中结点值最小的结点输出,然后将该结点从中删除,直到单链表为空为止,再删除头结点。
2023-12-17 21:43:04
501
原创 有两个循环单链表,链表头指针分别为 h1 和 h2,编写一个函数将 h2 链接到 链表h1 之后,要求处理完仍是一个循环单链表。
注意题目说的是头指针 h1 和 h2,所以这两个循环单链表并没有头结点。
2023-12-17 21:21:04
385
原创 设计一个算法用于判断循环双链表是否对称。
分为两个情况,奇和偶,为奇(q=p)时用q!=p作为结束条件,为偶(p->next=q&&q->prior=p)时用 q->next!= p 作为结束条件,因为不能在p->next=q&&q->prior=p 的条件下就退出循环这样会少判断一对。
2023-12-17 21:10:43
517
原创 已知两个链表A 和 B分别表示两个集合,其元素递增排列。编写函数求 A 和 B 的交集,并存放在 A 中。
【代码】已知两个链表A 和 B分别表示两个集合,其元素递增排列。编写函数求 A 和 B 的交集,并存放在 A 中。
2023-12-17 20:46:14
490
原创 设A 和 B 是两个带头结点单链表,其中元素递增有序,设计一个算法从 A 和 B 中的公共元素产生 C,要求不破坏 A 和 B 的结点。
【代码】设A 和 B 是两个带头结点单链表,其中元素递增有序,设计一个算法从 A 和 B 中的公共元素产生 C,要求不破坏 A 和 B 的结点。
2023-12-16 22:14:05
787
原创 假设有两个按元素值递增次序排列的线性表以单链表形式存储,设计算法使得两个表合并为一个递增的单链表。要求利用原来两个单链表来存储归并后的单链表。
【代码】假设有两个按元素值递增次序排列的线性表以单链表形式存储,设计算法使得两个表合并为一个递增的单链表。要求利用原来两个单链表来存储归并后的单链表。
2023-12-16 21:57:46
325
原创 将一个带头结点单链表 A分解为A 和 B 使得 A 中为奇数项元素,B 中为偶数项元素,保持其相对顺序不变。
【代码】将一个带头结点单链表 A分解为A 和 B 使得 A 中为奇数项元素,B 中为偶数项元素,保持其相对顺序不变。
2023-12-16 21:03:58
337
原创 给定两个单链表,找出其公共结点
分别遍历两个单链表得到他们的长度,并求出两个长度之差。在长的链表上先遍历长度之差个结点之后,再同步遍历两个链表,直到找到相同的结点,或者一直到链表结束。
2023-12-14 22:33:39
407
原创 设在一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有介于给定的两个值(作为函数参数给出)之间的元素。(若存在)
【代码】设在一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有介于给定的两个值(作为函数参数给出)之间的元素。(若存在)
2023-12-08 13:37:33
398
原创 试编写在带头结点的单链表中删除一个最小值结点的算法(假设最小值结点唯一)。
【代码】试编写在带头结点的单链表中删除一个最小值结点的算法(假设最小值结点唯一)。
2023-12-06 13:59:09
451
原创 在带头结点的单链表L中,删除所有值为x的结点,并释放其空间,假设值为x的结点不唯一,编写算法实现上述操作。
【代码】在带头结点的单链表L中,删除所有值为x的结点,并释放其空间,假设值为x的结点不唯一,编写算法实现上述操作。
2023-12-06 13:40:39
507
原创 线性表(a1,..,an)中的元素递增有序且按顺序存储于计算机内。要求设计一个算法完成用最少时间在表中查找数值为X的元素,若找到则将其与后继元素位置相交换若找不到,则将其插入表中并使表中元素保持有序。
【代码】线性表(a1,..,an)中的元素递增有序且按顺序存储于计算机内。要求设计一个算法完成用最少时间在表中查找数值为X的元素,若找到则将其与后继元素位置相交换若找不到,则将其插入表中并使表中元素保持有序。
2023-12-05 22:57:40
400
原创 已知在一维数组A[m+n]中依次存放两个线性表(a1,..,am)和(b1,.,bn)。编写一个函数,将数组中两个顺序表的位置互换,即将(b1,.,bn)放在(a1,..,am)的前面。
【代码】已知在一维数组A[m+n]中依次存放两个线性表(a1,..,am)和(b1,.,bn)。编写一个函数,将数组中两个顺序表的位置互换,即将(b1,.,bn)放在(a1,..,am)的前面。
2023-12-05 19:09:55
989
原创 从顺序表中删除其值在给定值s与t之间 (包含s和t,要求s<t) 的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。
【代码】从顺序表中删除其值在给定值s与t之间 (包含s和t,要求s<t) 的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。
2023-12-04 23:49:07
396
原创 对长度n为的顺序表L,编写一个时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法删除线性表中所有值为x的数据元素。
【代码】对长度n为的顺序表L,编写一个时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法删除线性表中所有值为x的数据元素。
2023-12-04 23:26:44
356
原创 设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为 O(1).
【代码】设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为 O(1).
2023-12-04 23:19:37
476
原创 从顺序表中删除具有最小值的元素(假设唯一) 并由函数返回被删元素的值。空出的位 置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。
【代码】从顺序表中删除具有最小值的元素(假设唯一) 并由函数返回被删元素的值。空出的位 置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。
2023-12-04 23:11:10
834
原创 二叉排序树,data域均大于0,并且有可能存在相同的结点,打印(升序)所有结点,重复结点仅打印一次。
二叉排序树,左子树<根<右子树。为了避免重复打印,可以设置一个 pre 值,在每次打印之前判断是否与上一个结点值相同。
2023-12-03 23:15:50
483
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人