![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
编程语言---C语言
文章平均质量分 57
每天2个起
一只天蝎
我呢,永远明媚!
展开
-
数据结构:五种查找算法
二分查找是在有序数组中查找特定元素的一种非常高效的算法。它通过比较数组中间的元素来工作,如果中间元素不是要找的元素,则根据该元素与目标值的大小关系,决定是在左半部分还是在右半部分继续查找。插值查找是二分查找的一种改进,它利用数据分布的特性来减少搜索范围。斐波那契查找是基于斐波那契数列的查找算法,它将查找区间分成不确定的两部分,类似于二分查找。线性查找是通过遍历数组中的每个元素来查找特定值的方法。它是最简单的查找算法之一。哈希查找通常不是通过比较元素本身来查找,而是通过使用哈希表的键值来快速定位元素。原创 2024-05-20 11:36:32 · 766 阅读 · 0 评论 -
C语言---指针的两个运算符:点和箭头
【代码】C语言---指针的两个运算符:点和箭头。原创 2024-03-16 09:45:37 · 1359 阅读 · 0 评论 -
sort()函数
是一个比较函数,它的代码如下,且属于是。原创 2023-04-17 18:06:05 · 53 阅读 · 0 评论 -
new和malloc的关系
【代码】new和malloc的关系。原创 2023-03-30 10:39:03 · 201 阅读 · 0 评论 -
Q2:1025 反转链表
【代码】Q2:1025 反转链表。原创 2023-03-28 21:09:20 · 57 阅读 · 0 评论 -
Q1:将长度未知的字符数组存储到整型数组
#include<bits/stdc++.h>using namespace std;int main(){ char str[35]; int num[35]; cin>>str; for(int len=0;str[len];len++) { num[len]=str[len]-'0'; cout<<num[len]<<endl; } }不是特别明白,for循环里的第二个参数的含义:str[原创 2023-03-15 14:49:25 · 72 阅读 · 0 评论 -
7-18 二分法求多项式单根
可是题目明明说了会保证一定有根,所以我就去查了答案。原创 2023-03-27 16:48:22 · 72 阅读 · 0 评论 -
机试练习Day6-有深度的题目--真题
- 运算符重载实质上是函数的重载。 - 一般格式:函数类型 operator 运算符名称(形参表){对运算符的重载处理} - 当运算符重载为类的成员函数时,函数的参数个数比原来的操作数个数要少一个(后置“++”,“--”除外),==原因:类的this指针所指的对象默认穿进去==。 - 用const对成员函数进行声明,表示这个函数不会修改类中的任何数据成员。下面这个函数承载如果去掉const会报错:“this”参数的类型为“const comp”,但方法未标记为const。原创 2023-03-24 20:43:43 · 468 阅读 · 0 评论 -
机试练习Day5-pta函数--做题复盘
6-8求二叉树的高度6-10 二分查找6-3 求链式表的表长。原创 2023-03-23 20:03:30 · 85 阅读 · 0 评论 -
机试练习Day4-牛客网计时--做题复盘
每个位上的可能数字是 0 或 1,最后面一个非零位可以是 2,例如,10120(skew) = 1×(2^5-1) + 0×(2^4-1) + 1×(2^3-1) + 2×(2^2-1) + 0×(2^1-1) = 31 + 0 + 7 + 6 + 0 = 44。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串。看了其他人提交的答案,豁然开朗。昨天做了几道题目,遇到了一点问题,基本解决了,因此来小计一下。原创 2023-03-15 14:48:34 · 273 阅读 · 0 评论 -
机试练习Day3-二叉树题目
二叉树基础知识原创 2023-02-27 16:04:31 · 91 阅读 · 0 评论 -
机试练习Day2-基础复习
机试的基础知识,有效复习回忆。原创 2023-02-24 14:25:58 · 99 阅读 · 0 评论 -
机试练习Day1-2019真题
机试题目练习原创 2023-02-23 10:42:13 · 355 阅读 · 0 评论 -
哈夫曼树和哈夫曼编码(可运行)
需要掌握的知识关于哈夫曼树和哈夫曼编码的一些定义存在意义具体实现关于哈夫曼树和哈夫曼编码的一些定义①路径:一棵树中一个节点到另一个结点之间的连接(就是分叉)②路径长度:两个节点之间的分叉个数③结点的权:节点被赋予的数值④结点的带权路径长度:从根节点到该节点之间的路径长度乘以他的的权。⑤我们建立一棵二叉树如果最后他的带权路径长度最小,则称他是最优二叉树,或者说哈夫曼树。⑥哈夫曼编码是动...原创 2020-05-04 11:29:14 · 868 阅读 · 0 评论 -
线索二叉树的实现(可运行代码)
按照前序遍历的顺序建立一棵二叉树,并按中序遍历顺序输出,并和普通二叉树作比较①头文件,枚举和二叉树结构体的定义#include <stdio.h>#include <stdlib.h>#define TElemType chartypedef enum { Link,//默认为0 Thread//默认为1 }PointerTag;type...原创 2020-04-28 18:42:28 · 724 阅读 · 0 评论 -
对给定的一棵二叉树进行递归和非递归的遍历操作
我们给出一棵确定的二叉树并进行递归和非递归的遍历比较树的样子如下图所示:(下面的代码均是先递归后非递归)①头文件和结构体的定义:为了进行非递归时方便我们以链表的形式进行定义:#include <stdio.h>#include <stdlib.h>typedef struct BiTNode{ char data; struct BiTNod...原创 2020-04-22 11:29:37 · 992 阅读 · 0 评论 -
7-4 列出叶结点 (25分) AC代码
7-4 列出叶结点 (25分)对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。输入格式:首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右孩子的编号。如果某个孩子不存在,则在对应位置给出 “-”。编号间以 1 个空格分隔。输出格式:在一行中按规定顺序输出叶节点的编号。编号间以 1 个空...原创 2020-04-18 18:10:42 · 1870 阅读 · 1 评论 -
7-3 哈夫曼编码 (30分) AC代码
题目####### 给定一段文字,如果我们统计出字母出现的频率,是可以根据哈夫曼算法给出一套编码,使得用此编码压缩原文可以得到最短的编码总长。然而哈夫曼编码并不是唯一的。例如对字符串"aaaxuaxz",容易得到字母 ‘a’、‘x’、‘u’、‘z’ 的出现频率对应为 4、2、1、1。我们可以设计编码 {‘a’=0, ‘x’=10, ‘u’=110, ‘z’=111},也可以用另一套 {‘a’=1, ‘x’=01, ‘u’=001, ‘z’=000},还可以用 {‘a’=0, ‘x’=11, ‘u’=100原创 2020-05-30 22:54:08 · 2271 阅读 · 3 评论 -
7-2 二叉树的遍历 (10分) AC代码
7-2 二叉树的遍历 (10分)根据输入构造二叉树,输出该二叉树的先序序列。二叉树共有N个节点,节点编号是1到N。约定1号节点是根节点。输入格式:第一行输入整数N。 接下来有N行,依次给出1到N节点的左孩子和右孩子。对于这N行中的每一行,有两个整数。第i(i=1, 2, …, N)行中,第一个整数指出左孩子的编号,第二个整数指出右孩子的编号。如果整数值为0,表示没有左孩子或右孩子。输出格式...原创 2020-04-19 11:38:59 · 2620 阅读 · 0 评论 -
7-1 还原二叉树 (25分) AC代码
7-1 还原二叉树 (25分)给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。(这个题是已知先序遍历和中序遍历,下面也给出了如果要是已知中序遍历和后序遍历怎样还原二叉树)输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输...原创 2020-04-26 09:58:28 · 1211 阅读 · 0 评论 -
T3:循环数组实现队列(C++编写、可AC版本)
循环数组实现队列,简单明了,直接运行版本。原创 2022-10-27 15:00:34 · 360 阅读 · 0 评论 -
T2:归并排序_顺序表+链表版
对于顺序表而言,找到“断点”很容易,因为其随机存取的特点,直接取中间值即可。对于单链表而言,不太容易,这里采用双指针法,设计思想很简单:快指针一次前进两步,慢指针一次前进一步,当快指针到达链表尽头时,慢指针就处于链表的中间位置,以此找到“断点”。但是,不可否认的是,因为是同一种排序算法,因此基本思想是一致的。原创 2022-10-27 16:06:59 · 176 阅读 · 0 评论 -
T1:直接插入排序_顺序表+链表版
直接插入排序——顺序表和链表是两种不同的存储结构(直接插入排序算法属于逻辑),所以会有所区别,主要体现在:数组是:正式开始排序之前所有的待排数据按照已给顺序存放在一个数组里。链表是:正式开始排序之前借助尾插法把所有的待排数据按照已给顺序放在一个链表里。数组是:从第二个元素开始排序,从当前要排的数据开始,从后向前比较,如果前面的元素大,那么就把它移后一个,直到找到第一个比自己小的,插入到这个数据后面(所以需要M和num)。原创 2022-10-21 19:12:29 · 151 阅读 · 0 评论