- 博客(8)
- 收藏
- 关注
原创 STL容器中常见的erase()和insert()
常用 insert() 和 erase() 函数的容器有 string ,vector ,set ,map其中只有 set 和 map 容器能用 insert( elem ) 和 erase( elem )不需要下标直接插入、删除指定数据。
2024-01-24 21:21:07 630
原创 scanf注意事项
这条输入的第一个字符是回车,然后是一连串的空格,因为占位符是%s,所以scanf会在遇到有效字符前,把刚开始的。原因是因为输入中的a和num2的%d不匹配,所以num2将赋值失败,不会改变原值。,导致之后num3的%d赋值也失败,num3也不变。可以明显地看到,除了2以外,其他都赋值失败了。,最后遇到回车后结束输入。
2023-10-21 14:18:44 94
原创 N皇后问题(回溯算法)
思路:回溯算法的思路符合我们正常思考的模式,即在每次放置皇后时,判断此时。回溯条件:放置皇后的位置与其他皇后在同一行或者同一列或者同一斜线上,,那么它们可以互相攻击,否者不能互相攻击。如果不符合要求,说明该位置不合适,判断。符合题目要求的不重复的解决方案总共有。的棋盘上,并且使皇后彼此之间。皇后问题的解决方案的数量。N皇后问题研究的是如何将。
2023-07-16 22:42:09 194
原创 字符串复制:C/C++的方法
原型声明:char *strcpy(char* dest, const char *src);dest——destination目的字符串,src——source来源字符串。功能:把从src地址开始,将字符逐个复制到以dest开始的。strcpy函数,位于头文件<string.h>中。C++中的string类的重载运算符可以使用。C的strcpy函数同样可以使用。
2023-05-21 17:26:07 1116
原创 求哈弗曼编码
将num个结点放进一维数组存储,每次挑选两个最小结点合并,删除挑选的两个结点,将新节点加入数组,重复n-1次,生成哈夫曼树。每个测试案例第一行输入整数m,代表有m个叶子结点,第二行依次输入m个叶子结点的权值。输出n行,每行按输入次序依次输出m个叶子结点的哈弗曼编码,中间用空格隔开。补充:构建哈夫曼树时,选择合并的两个结点将小的放在左边。输入整数n,代表有n个测试案例。
2023-05-18 22:24:05 164
原创 求哈夫曼树的带权路径长度
输入一个数m,表示叶结点的个数,接下来输入m个数表示叶结点权值。需要用这些叶结点生成哈夫曼树,输出该哈夫曼树的带权路径长度。带权路径长度=9*2+11*2+5*3+7*3+8*3+2*4+3*4=120。带权路径长度=2+3+5+5+10+9+19+7+8+15+11+26=120。不用再通过构建一棵树计算,可以通过排序简单地得到我们想要的答案。由定义知:哈夫曼树的带权路径长度等于(每个叶子结点*对应路径)哈夫曼树的带权路径长度=除根节点外每个结点的权值之和。观察上面的哈弗曼树,我们可以知道。
2023-05-18 21:54:54 5805
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人