int split() { float split = 0.2; int split_row = split * row; //20%用于预测,并为其开辟空间 testdata = (float **)malloc(split_row * sizeof(float *)); for (int k = ...
分类:
其他好文 时间:
2020-05-01 18:24:49
阅读次数:
69
描述 众所周知,任何一个表达式,都可以用一棵表达式树来表示。例如,表达式a+b c,可以表示为如下的表达式树: + / \\ a \ / \\ b c 现在,给你一个中缀表达式,这个中缀表达式用变量来表示(不含数字),请你将这个中缀表达式用表达式二叉树的形式输出出来。 输入 输入分为三个部分。 第一 ...
分类:
其他好文 时间:
2020-04-29 21:48:12
阅读次数:
74
题目 思路 通过最小堆模拟哈夫曼树,权值的计算就是删除堆中的两个最小元素,相加,插入最小堆。 平均码长=所有结点的编码总长度/所有结点的总频次 存储的名字是没有用处的,用主函数数组存储就行。 代码: #include <malloc.h> #include <stdio.h> #include <s ...
分类:
其他好文 时间:
2020-04-29 20:25:35
阅读次数:
146
动态存储分配在数组一章中,曾介绍过数组的长度是预先定义好的,在整个程序中固定不变。C语言中不允许动态数组类型。例如:int n;scanf("%d",&n);int a[n];用变量表示长度,想对数组的大小作动态说明,这是错误的。但是在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入 ...
分类:
其他好文 时间:
2020-04-29 15:00:47
阅读次数:
52
1. malloc/free 是标准库函数,new/delete是C++运算符 2. malloc失败返回空,new失败抛出异常 3. new/delete会调用构造,析构函数,malloc/free不会 4. new返回有类型的指针,malloc返回无类型的指针 5. 使用new操作符申请内存分配 ...
分类:
其他好文 时间:
2020-04-29 00:53:34
阅读次数:
60
在C语言中,很多库参数的参数和返回值的数据类型是size_t,让很多初学都不理解。size_t不是C语言的关键字,也不是基本数据类型,而是C语言自定义的数据类型。例如以下库函数的声明:size_tstrlen(constchar*s);void*memset(void*s,intc,size_tn);char*strncpy(char*dest,constchar*src,size_tn);voi
分类:
编程语言 时间:
2020-04-28 18:49:07
阅读次数:
100
经典的O3优化(一般写在开头) #pragma GCC optimize("O3") #pragma G++ optimize("O3") G++手动扩大栈(写在main的开始) int size = 256 << 20; // 256MB char *p = (char*)malloc(size) ...
分类:
编程语言 时间:
2020-04-24 21:49:40
阅读次数:
111
解题思路:入栈顺序即为前序,出栈顺序为中序,等价于求由前序和中序确定后序 #include <stdio.h> #include <string.h> #include <malloc.h> typedef char Element[5]; typedef struct TNode { int da ...
分类:
其他好文 时间:
2020-04-23 21:11:36
阅读次数:
103
两遍扫描: 扫描第一遍,记录0、1、2的个数; 扫描第二遍,重填数组。 /* */ #include<stdio.h> #include<malloc.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<string. ...
分类:
其他好文 时间:
2020-04-22 10:20:18
阅读次数:
54
动态规划: 1、状态定义 2、状态初始化 3、状态转移 /* */ #include<stdio.h> #include<malloc.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<string.h> #incl ...
分类:
其他好文 时间:
2020-04-22 09:37:01
阅读次数:
66