残雪2022
码龄6年
关注
提问 私信
  • 博客:31,503
    动态:2
    31,505
    总访问量
  • 31
    原创
  • 1,216,558
    排名
  • 16
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2018-09-24
博客简介:

qq_43271509的博客

查看详细资料
个人成就
  • 获得28次点赞
  • 内容获得5次评论
  • 获得71次收藏
  • 代码片获得2,249次分享
创作历程
  • 25篇
    2022年
  • 7篇
    2020年
成就勋章
兴趣领域 设置
  • 数据结构与算法
    推荐算法
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

182人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

用邻接表表示图的BFS,DFS遍历

BFS#include <stdio.h>#include<stdlib.h>#define MaxVertexNum 10 /* 最大顶点数设为10 */typedef int Vertex; /* 用顶点下标表示顶点,为整型 *//* 邻接点的定义 */typedef struct AdjVNode *PtrToAdjVNode; struct AdjVNode{ Vertex AdjV; /* 邻接点下标 */ Pt
原创
发布博客 2022.03.19 ·
921 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

习题2.7 弹球距离

题目设有一个球从高度为h米的地方落下,碰到地面后又弹到高度为原来p倍的位置,然后又落下,再弹起,再落下…。请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。代码#include <stdio.h>#include <stdlib.h>#define TOL 1E-3double dist( double h, double p );int main(){ double h, p, d; scanf("
原创
发布博客 2022.03.18 ·
1161 阅读 ·
2 点赞 ·
0 评论 ·
6 收藏

习题2.6 递归求简单交错幂级数的部分和

题目本题要求实现一个函数,计算下列简单交错幂级数的部分和:f(x,n)=x−x 2 +x 3 −x 4 +⋯+(−1) n−1 x n代码#include<stdio.h>#include<stdlib.h>#include<math.h>double fn(double x,int n);void main(){ int n; double x; scanf("%lf %d",&x,&n); printf("%.2lf",fn(x
原创
发布博客 2022.03.18 ·
1249 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

基础实验6-2.5 城市间紧急救援

题目作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。思路此题目思路与以往的Dijkstra的题目有不同,参考了网上的写法之后,才写出了此题,一些有坑的地方已经,单独注释了。代码/*此题坑很多,虽然用到了Dijkstra算法但是,第一次循环到赋值是无效的,为
原创
发布博客 2022.03.17 ·
944 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

习题8.1 银行排队问题之单队列多窗口服务

题目假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。思路具体实现思路,模仿了操作系统中的进程调度占用cpu的状态分析。注意完成时间,最后完成时间,一定是最后window数组中最长的那个。代码#include<stdio.h>#inclu
原创
发布博客 2022.03.16 ·
797 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

习题4.5 顺序存储的二叉树的最近的公共祖先问题

题目设顺序存储的二叉树中有编号为i和j的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值。代码#include<stdio.h>#include<stdlib.h>#define N 1001int findConAncestor(int x,int y);int data[N];int n;void main(){ int i,x,y,k; scanf("%d",&n); for(i=0;i<=n;i++)//置空 data[i]=
原创
发布博客 2022.03.15 ·
1223 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

练习4.3 堆中的路径

题目将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。思路此题主要考察使用插入的方式建立小根堆,堆得插入主要是要循环与其父节点进行比较。代码void insert(int x);void Print(int x);int data[N],index=0;int n,m;void main(){ int i,x; scanf("%d %d",&n,&m); for(i=0;i<n;i++){ scanf("%
原创
发布博客 2022.03.15 ·
1453 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

习题3.11 表达式转换

题目算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。思路*(由于没有找到好的表示(、)、-、、+、/的方法,所以用了if else分析了所有情况) *具体实现,从左到右扫描字符串,是数字直接输出,若是字符则要考虑进入堆栈暂存,进入堆栈之前首先要考虑当前栈顶元素的优先级若有先及比将要入栈的元素高则将栈顶元素pop出来然后循环比较,直至栈空或者栈顶元素为优先级比当前要插入元素优先级低的情况
原创
发布博客 2022.03.14 ·
1828 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

习题3.9 堆栈操作合法性

题目假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。代码#include<stdio.h>#include<stdlib.h>#define N 100int n,m;char data[N][N];void main(){ int i,j,top,k,empty; scanf("%d
原创
发布博客 2022.03.14 ·
246 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

习题3.4 最长连续递增子序列

题目给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。思路循环遍历数组中从每一个位置开始的递增数列的长度然后存入数组,最后检索lenght数组求出最大长度的起始位置,后从此位置开始遍历,lenght[i]就是你要遍历数组的长度。优化思路:见代码注解。代码#include<stdio.h>#include<stdlib.h>#define N 100voi
原创
发布博客 2022.03.14 ·
1808 阅读 ·
4 点赞 ·
0 评论 ·
7 收藏

习题3.6 一元多项式的乘法与加法运算

题目设计函数分别求两个一元多项式的乘积与和。思路数学公式基本思路了,运用循环该怎么算怎么算了。代码#include<stdio.h>#include<stdlib.h>#define N 1000typedef struct pramary{ int data; int exp;}element;void Add(element group1[N],element group2[N]);void Multiple(element g1[N],element
原创
发布博客 2022.03.14 ·
521 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

习题2.8 输出全排列

题目请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。思路回溯算法,回溯算法主要就是适用于暴力破解,在时间足够的情况下运用递归穷举。代码#include<stdio.h>#include<stdlib.h>#define N 10void BackTracking(int start,int index);void Print();int n;int pr[N],visit[N];void
原创
发布博客 2022.03.14 ·
1489 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

进阶实验4-3.3 完全二叉搜索树

题目一个无重复的非负整数序列,必定对应唯一的一棵形状为完全二叉树的二叉搜索树。本题就要求你输出这棵树的层序遍历序列。代码法一#include<stdio.h>#include<stdlib.h>#include<math.h>#define N 100void CreatCompleteTree(int left,int right,int root);int findLeftLenght(int lenght);void sort();int da
原创
发布博客 2022.03.13 ·
2668 阅读 ·
3 点赞 ·
3 评论 ·
2 收藏

基础实验4-2.8 部落

题目在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。思路本题应该说是典型的并查集的题目,用并查集很容易解决。代码#include<stdio.h>#include<stdlib.h>#define N 100int find(int x);void unio(int x,int y);int n,m,k
原创
发布博客 2022.03.11 ·
300 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

基础实验4-2.7 修理牧场

题目农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L i​ 个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是L i的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。如果第一次将木头锯成15和5,则第二次锯木头花费15,总花费为35(
原创
发布博客 2022.03.11 ·
2044 阅读 ·
0 点赞 ·
0 评论 ·
9 收藏

基础实验4-2.2 列出叶结点

题目对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。代码#include<stdio.h>#include<stdlib.h>#define N 10typedef struct Tree{ int data; int lchild,rchild;}*BiTree;typedef struct queue{ int data[N]; int front,rear;}*Queue;int CreatTree(int n);Queue
原创
发布博客 2022.03.10 ·
2077 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

案例4-1.7 文件传输

题目当两台计算机双向连通的时候,文件是可以在两台机器间传输的。给定一套计算机网络,请你判断任意两台指定的计算机之间能否传输文件?代码#include<stdio.h>#include<stdlib.h>#define N 100int find(int x);void unio(int x,int y);int countLink();int fa[N],count[N];int n;void main(){ int i; char temp; int
原创
发布博客 2022.03.09 ·
254 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

案例4-1.6 树种统计

题目随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。代码#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 100int isContant(char a[N],int x);void countTreeClass();int findMinindex();char string[N][N];i
原创
发布博客 2022.03.09 ·
587 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

基础实验3-2.5 堆栈模拟队列

题目设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈S是否已满,返回1或0;int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0;void Push(Stack S, ElementType item ):将元素item压入堆栈S;ElementType Pop(Stack S ):删除并返回S的栈顶元素。实现队列的操作,即入队void AddQ(Ele
转载
发布博客 2022.03.08 ·
811 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

基础实验2-2.4 装箱问题

题目假设有N项物品,大小分别为s 1​ 、s 2 、…、s i 、…、s N​ ,其中s i​ 为满1≤si​≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。代码#include<stdio.h>#include<stdlib.h>#define CaseN 1000#de
原创
发布博客 2022.03.07 ·
183 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏
加载更多