算法相关题目
文章平均质量分 95
Violet_Stray
debug未遂
展开
-
【数据结构/leetcode】回溯算法部分代码
数据结构 leetcode 回溯算法原创 2021-09-05 21:19:32 · 184 阅读 · 0 评论 -
【数据结构/leetcode】二叉树部分代码
数据结构 leetcode 二叉树原创 2021-09-05 21:17:16 · 147 阅读 · 0 评论 -
【数据结构/leetcode】贪心算法部分代码
数据结构 leetcode 贪心算法原创 2021-09-05 21:10:17 · 391 阅读 · 0 评论 -
【数据结构/leetcode】背包问题部分代码
数据结构 背包问题 代码原创 2021-09-05 21:09:10 · 546 阅读 · 0 评论 -
AVL添加(c语言)
平衡二叉树,是一种二叉排序树,其中每个结点的左子树和右子树的高度差至多等于1。它是一种高度平衡的二叉排序树。现二叉平衡树结点定义如下:typedef struct node{ int val; struct node *left; struct node *right; struct node *parent; int height;} node_t;请实现平衡二叉树的插入算法://向根为 root 的平衡二叉树插入新元素 val,成功后返回新平衡二叉树根结原创 2020-06-18 10:08:41 · 2034 阅读 · 7 评论 -
哈希表添加(c语言)
哈希表(Hash Table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做哈希函数,存放记录的数组称做哈希表。哈希表相关定义如下:typedef enum{ HASH_OK, HASH_ERROR, HASH_ADDED, HASH_REPLACED_VALUE, HASH_ALREADY_ADDED, HASH_D原创 2020-06-14 11:49:11 · 3961 阅读 · 10 评论 -
哈希表创建(c语言分离链接法/链地址法)
哈希表(Hash Table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做哈希函数,存放记录的数组称做哈希表。哈希表相关定义如下:typedef enum{ HASH_OK, HASH_ERROR, HASH_ADDED, HASH_REPLACED_VALUE, HASH_ALREADY_ADDED, HASH_D原创 2020-06-14 10:56:54 · 2358 阅读 · 6 评论 -
邻接表2(c语言)
试在邻接表存储结构上实现图的基本操作 del_vertex,相关定义如下:typedef int VertexType;typedef enum{ DG, UDG}GraphType;ypedef struct ArcNode{ int adjvex; InfoPtr *info; struct ArcNode *nextarc; }ArcNode; typedef struct VNode{ VertexType data; ArcNod原创 2020-05-23 13:57:58 · 1415 阅读 · 9 评论 -
邻接表1(c语言)
试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下:typedef int VertexType;typedef enum{ DG, UDG}GraphType;ypedef struct ArcNode{ int adjvex; InfoPtr *info; struct ArcNode *nextarc; }ArcNode;typedef struct VNode{ VertexType dat原创 2020-05-10 20:21:47 · 1760 阅读 · 8 评论 -
邻接矩阵(c语言)
试在邻接矩阵存储结构上实现图的基本操作 matrix_insert_vertex 和matrix_insert_arc,相关定义如下:typedef int VertexType;typedef enum{ DG, UDG}GraphType;typedef struct{ VertexType vertex[MAX_VERTEX_NUM]; //顶点向量 int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; //邻接矩阵 int v原创 2020-05-10 19:40:35 · 1859 阅读 · 6 评论 -
树转二叉树(c语言,使用队列)
使用队列,编写transfrom函数,将普通树转换成对应的二叉树。二叉树的相关定义如下:typedef int DataType;typedef struct Node{ DataType data; struct Node* left; struct Node* right;}BiTNode, *BiTree;普通树节点的定义如下:#define MAX_CH...原创 2020-04-29 21:49:48 · 3125 阅读 · 23 评论 -
二叉树(根节点到任意结点的路径)
假设二叉树采用二叉链表方式存储, root指向根结点,node 指向二叉树中的一个结点,编写函数 path,计算root到 node 之间的路径,(该路径包括root结点和 node 结点)。path 函数声明如下:bool path(BiTNode* root, BiTNode* node, Stack* s);其中,root指向二叉树的根结点,node指向二叉树中的另一结点,s 为已经初始...原创 2020-04-28 21:22:42 · 8033 阅读 · 15 评论 -
二叉树共同祖先(c语言,非递归)
假设二叉树采用二叉链表方式存储, root指向根结点,p所指结点和q所指结点为二叉树中的两个结点,编写一个计算它们的最近的共同祖先,函数定义如下:BiTNode * nearest_ancestor(BiTree root, BiTNode *p, BiTNode *q);其中 root 指向二叉树的根结点,p 和 q 分别指向二叉树中的两个结点。提示:在完成本题时,可利用 path 函数获...原创 2020-04-26 09:54:14 · 2546 阅读 · 5 评论 -
二叉树先序遍历(c语言,非递归)
已知二叉树按照二叉链表方式存储,利用栈的基本操作写出先序遍历非递归形式的算法:void pre_order(BiTree root);在遍历过程中,pre_order函数需要调用 visit_node 函数来实现对结点的访问,该函数声明如下:void visit_node(BiTNode *node);二叉树的相关定义如下:typedef int DataType;typedef st...原创 2020-04-20 17:14:28 · 4806 阅读 · 8 评论 -
(c语言)十字链表初始化、删除
十字链表相关定义如下:typedef int ElemType;// 非零元素结点结构typedef struct OLNode{ int row,col; ElemType value; struct OLNode *right,*down;}OLNode,*OLink;// 十字链表结构typedef struct{ OLink *rowhe...原创 2020-04-17 15:09:12 · 2691 阅读 · 6 评论 -
(c语言)稀疏矩阵加法
实现三元组表示的两个稀疏矩阵的加法。相关定义如下#define MAXSIZE 100 //假设非零元个数的最大值为100typedef struct { int i,j; //非零元的行下标和列下标,i 和 j 从 1 开始计数,与数学中矩阵元素的编号一致 ElemType e; //非零元的值}Triple;typedef ...原创 2020-04-17 15:01:38 · 2819 阅读 · 0 评论 -
块链串(c语言实现字串建立、查找、输出)
src为要查找的字符串pos为子串开始的下标len为子串的长度sub在函数调用运行前指向一个已经初始化好的空串,在函数返回时,sub指向串src从第pos个字符起长度为len的子串函数查找成功返回true,参数不正确返回 false#include<stdio.h>#include<string.h>#include<stdlib.h>#defi...原创 2020-04-15 17:34:22 · 2466 阅读 · 0 评论 -
串替换,实现字符串替换操作
不调用库函数,自己实现字符串替换操作,函数原型为:int str_replace(const char *in, char *out, int outlen, const char *oldstr, const char *newstr);参数说明:in, 原始字符串,保持不变out, 存放替换结果的字符串outlen,out空间的大小oldstr,要替换的旧字符串newstr,替换...原创 2020-04-10 10:08:38 · 4225 阅读 · 4 评论 -
自定义串比较
不调用库函数,自己实现字符串的比较操作:该操作当比较的两个字符是都是字母,且两个字符互为大小写(如a和A、e和E)时认为两个字符相同,否则不同,其比较结果按这两个字符的原值确定。函数的返回值规定如下:返回值 < 0:第一个不匹配的字符在 ptr1 中的值低于 ptr2 中的值返回值 == 0:两个字符串的内容相等返回值 > 0:第一个不匹配的字符在 ptr1 中的值大于在 p...原创 2020-03-26 23:04:39 · 1259 阅读 · 0 评论 -
队列 循环链表表示队列
假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),请完成下列任务:1: 队列初始化,成功返回真,否则返回假:bool init_queue(LinkQueue *LQ);2: 入队列,成功返回真,否则返回假:bool enter_queue(LinkQueue *LQ, ElemType x);3: 出队列,成功返回真,且*x为出队的值,否则返回假:boo...原创 2020-03-25 18:26:22 · 1329 阅读 · 0 评论 -
(c语言)后缀表达式
栈 后缀表达式计算请使用已定义好的栈完成后缀表达式计算:(1)如果是操作数,直接入栈(2)如果是操作符op,连续出栈两次,得到操作数x 和 y,计算 x op y,并将结果入栈。后缀表达式示例如下:9 3 1 - 3 * + 10 2 / +13 445 + 51 / 6 -操作数、操作符之间由空格隔开,操作符有 +,-,*, /, %共 5 种符号,所有...原创 2020-03-25 18:17:44 · 3185 阅读 · 0 评论 -
链表 倒数查找
已知一个带有表头结点的单链表, 假设链表只给出了头指针L。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,函数通过指针参数 p_ele 返回该结点 data 域的值,此时函数返回 1;否则,函数返回 0。相关定义如下:struct _lnklist{ ElemType data; struct _lnklist *ne...原创 2020-03-06 18:55:54 · 761 阅读 · 1 评论 -
链表 删除范围内结点
已知线性表中的元素(整数)以值递增有序排列,并以单链表作存储结构。试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的算法的时间复杂度。...原创 2020-03-06 18:32:09 · 733 阅读 · 0 评论 -
顺序表 数据调整
已知顺序表L中的数据元素类型为int。设计算法将其调整为左右两部分,左边的元素(即排在前面的)均为奇数,右边所有元素(即排在后面的)均为偶数,并要求算法的时间复杂度为O(n),空间复杂度为O(1)。快速排序的方法,把奇数偶数分到两边struct _seqlist{ ElemType elem[MAXSIZE]; int last;};typedef struct _seql...原创 2020-03-06 17:59:56 · 2054 阅读 · 1 评论 -
顺序表 删除重复
编写算法,在一非递减的顺序表L中,删除所有值相等的多余元素。要求时间复杂度为O(n),空间复杂度为O(1)。struct _seqlist{ ElemType elem[MAXSIZE]; int last;};typedef struct _seqlist SeqList;...原创 2020-03-06 17:34:24 · 1584 阅读 · 0 评论 -
顺序表 删除指定范围
题目:设计一个高效的算法,从顺序表L中删除所有值介于x和y之间(包括x和y)的所有元素(假设y>=x),要求时间复杂度为O(n),空间复杂度为O(1)。struct _seqlist{ ElemType elem[MAXSIZE]; int last;};typedef struct _seqlist SeqList;void del_x2y(SeqList* L,...原创 2020-03-06 16:54:21 · 2795 阅读 · 0 评论