天翼云数据结构知识文档专栏是天翼云为开发者提供的互联网技术内容平台。内容涵盖数据结构相关内容资讯。开发者在数据结构专栏是可以快速获取到自己感兴趣的技术内容,与其他开发者们学习交流,共同成长。
编写一个函数,利用二分查找算法在一个有序表中插入一个关键字k,并保持表的有序性。
给定一个带头结点的单链表,设 head 为头指针,节点结构为 (data, next),data 为整型元素,next 为指针,试写出算法:按递增次序输出单链表中各节点的数据元素,并释放节点所占的存储空间。要求:不允许使用数组作为辅助空间。
有一个递增非空单链表,设计一个算法删除值域重复的节点。例如,{1, 1, 2, 3, 3, 3, 4, 4, 7, 7, 7, 9, 9, 9} 经过删除后变成 {1, 2, 3, 4, 7, 9}。
从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删除元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。
构造串的链表结点数据结构(每个结点内存储一个字符),编写一个函数,找出串 str1 中第一个不在串 str2 中出现的字符。
给出在一个递增有序表A中采用二分查找算法查找值为k的关键字的递归算法。
设 C = {a1, b1, a2, b2, ..., an, bn} 为线性表,采用带头结点的 hc 单链表存放,设计一个就地算法,将其拆分为两个线性表,使得 A = {a1, a2, ..., an},B = {bn, ..., b2, b1}。
假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的节点存放归并后的单链表。
将一个带头结点的单链表 A 分解为带头结点的单链表 A 和 B,使得 A 表中含有原表中序号为奇数的元素,而 B 表中含有原表中序号为偶数的元素,且保持其相对顺序不变。
给定某二叉树的前序遍历和中序遍历,且前序遍历和中序遍历当中无重复元素,请重建出该二叉树并返回它的头结点。
考研数据结构之查找(9.8)——练习题之使用散列函数H(k)= 3k mod 11并采用链地址法处理冲突并构造散列表及设计散列表的完整算法(C表示)
树转换为二叉树 森林转换为二叉树 树的遍历 树的遍历有两种方式:先序遍历和后序遍历。
二叉树的主要遍历方式有先序遍历、中序遍历、后序遍历和层次遍历。
线性表 [a1, a2, a3, ..., an] 中的元素递增有序且按顺序存储于计算机内。要求设计一个算法,完成用最少时间在表中查找数值为 x的元素,若找到,则将其与后继元素位置相交换,若找不到,则将其插入表中并使表中元素仍递增有序。
它的基本思路是:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值k比较,若当前扫描的关键字与k相等,则查找成功,若扫描结束,仍未发现关键字等于k的记录,则查找失败。
给定整型数组B[0 , ... , M][0 , ... , N]。已知B中数据在每一维方向上都按从小到大的次序排列,且整型变量k在B中存在。设计一个程序段,找出一对满足B[i][j]=k的i和j值,找到后输出i和j的值,要求比较次数不超过M+N。
有时候我们需要寻找单链表的第 k 个节点,当然这个 k 在 [1, n] 范围内,可以采用计数的方式
用单链表保存 m 个整数,节点的结构为 [data][next],且 |data|<=n(n 为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中 data 的绝对值相等的节点,仅保留第一次出现的节点而删除其余绝对值相等的节点。
假设二叉树采用二叉链表存储结构存储,编写一个程序,输出先序遍历序列中第k个结点的值,假设k不大于总的结点树(结点data域类型为char类型)。
做甜点需要购买配料,目前共有n种基料和m种配料可供选购。 制作甜点需要遵循以下几条规则: 必须选择1种基料;可以添加0种、1种或多种配料,每种类型的配料最多添加2份, 给定长度为n的数组base, base[i]表示第i种基料的价格,给定长度为m的数组topping, topping[j]表示第j种配料的价格,给定一个正数target,表示你做的甜点最终的价格要尽量接近这个数值。
2023-05-15 10:00:33
2023-03-21 10:32:27
2023-03-22 09:34:26
2023-02-24 09:05:57
2023-03-14 09:56:09
2023-05-23 09:26:42