- 博客(15)
- 收藏
- 关注
原创 哈夫曼(数组实现)
哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出哈夫曼树的带权路径长度(WPL)。本题要求字符的哈夫曼编码,注意建立的哈夫曼树严格按照左小右次小的顺序,并且哈夫曼编码时严格按照左‘0’右‘1’进行编码。
2024-04-26 23:07:43 427 1
原创 KMP算法寻找子串下标
有一个主字符串和一个子字符串,判断子字符串是否在主字符串内,如果在就输出子串在主串中的对应起始下标,否则输出NotFound。
2024-03-30 21:01:12 729 1
原创 LEETCODE2807在链表中插入最大公约数
在相邻结点之间,请你插入一个新的结点,结点值为这两个相邻结点值的 最大公约数。给你一个链表的头 head ,每个结点包含一个整数值。2807. 在链表中插入最大公约数。递归,辗转相除法求最大公约数。请你返回插入之后的链表。
2024-03-27 21:36:27 140
原创 表达式求值-混合四则运算
这串代码是双栈,一个用于存储数字,另一个用于存储符号,栈顶元素遇到优先级低的就计算并将值入栈。比如对栈顶元素+来说,它遇到新符号是乘号除号的都约定为>情况,新符号直接进栈。另外用到 iop(char ch)//返回符号对应的下标,比如oplist[iop(ch)][iop(s[i])]就是得到对应的优先级比较结果。本题要求实现整数的混合四则运算,运算符仅有四种:+、-、* 、/ ,但是以字符串的形式输入表达式。注意这里的除数均为可整除的数。最后字符串读取完毕后,栈中的的数值直接相加,就是算式的最终结果。
2024-03-27 20:31:19 833
原创 23. 合并 K 个升序链表已解答困难相关标签相关企业给你一个链表数组,每个链表都已经按升序排列。
因为分配内存空间也需要时间来进行操作。可是下面这串代码会T。这串代码是可以过的,
2024-03-26 20:29:11 88
原创 【无标题】
定义一个字符指针,通过一个for循环遍历满足条件的字符,并用j来记录节点位置。最后通过‘\0’切割。找到最短字符长度,逐步切片,通过find函数返回值来判断是不是找到最大公共前缀。编写一个函数来查找字符串数组中的最长公共前缀。
2024-03-26 19:55:03 287
原创 特殊堆栈PTA
堆栈是一种经典的后进先出的线性结构,相关的操作主要有“入栈”(在堆栈顶插入一个元素)和“出栈”(将栈顶元素返回并从堆栈中删除)。1.在每次PeekMidnumber时用data函数来存储栈中元素,再用qsort函数进行快排,直接返回对应data[top/2]即是我们所要求的中值,这种方法就是上述代码的思路;#用t数组作为树状数组存储每个数字及之前的数字(至对应节点起始位置的数字)出现的所有次数,s数组用来作为顺序栈;2.如果用hash表存储每个数出现的次数,增添或者删除对应数字出现的次数,具体操作还没试,
2024-03-24 14:21:22 1289 1
原创 数据结构第三次注释更改
将L1,L2的Next指向NULL是为了防止遍历链表时沿着L1,L2的指向走下去。#这两步我觉得加不加都ok。#虚拟一个头节点,提高代码可读性和维护性。我上篇文章中说这两步我觉得加不加都ok,是错误的。#搞两个指针分别指向两个链表。#尾部指针,用来链接。
2024-03-18 21:09:13 331
原创 数据结构第三次
然后fast和slow同时走,当fast走到NULL时,fast与slow相差m步,即slow在倒数第m个节点处。#第一个删不删(没有头节点感觉好麻烦,有的话直接头节点的next指过去就好了,不过也都差不多)#若插入位置下标小于0,则非法插入,等于L->Last+1时,即在元素末尾后紧接着插入。#思考题答案:因为nsh是用nsh->Next来进行赋值的,所以少走一步刚刚好。}#先判断后分配空间或者先分配空间再判断,不行就free掉,此处属于前者。#此时的pre指向seh,当作下一段的头节点,来进行操作;
2024-03-17 19:41:11 421 1
原创 C语言小游戏
if(b<a)printf("小了,傻叉\n");else printf("大了,傻叉\n");if(b==a)printf("666 你赢了\n");printf("开始游戏:\n");printf("请输入:");
2024-03-17 18:36:43 400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人