C++
文章平均质量分 73
夕伤夜残
Stay hungry,Stay foolish.
展开
-
bzip2原理分享
bzip2原创 2022-09-05 15:28:33 · 2176 阅读 · 1 评论 -
ListNode * p 和 ListNode * p= new ListNode()的区别
ListNode * p 是指向结构节点的指针,里面只有一个地址。ListNode * p= new ListNode()是一个结构节点,里面有val和指向下一个节点的结构体指针,而且该节点已经被系统分配内存,在函数体里不会被自动释放。练习题:在不申请额外的空间情况下,用指针方法完成单链表的链表倒转。时间复杂度O(n^2)#include<bits/stdc++.h>using namespace std;struct ListNode { int val;原创 2022-04-04 14:18:55 · 4393 阅读 · 0 评论 -
二叉树非递归序列重建树(机试)
二叉树非递归建树题意思路写法1:指针写法写法2:map映射写法题意以括号序列形式给出二叉树。括号内为左右子树,逗号分割左右子树求该树得中序遍历序列。没有逗号就是没有右子树。保证序列正确至多有100个节点。输入样例:输入:A(B(D(,G)),C(E,F))输出:DGBAECF思路以前有碰到过类似的题目:建树的序列是这样的按顺序给每个节点,还给出空节点。直接递归建树就行。(给出层序遍历建树)例子:ab#cdef########类似的题目还有给出一个中序+(前序/后序)序列,让建立整颗原创 2022-03-15 20:18:03 · 553 阅读 · 0 评论 -
哈夫曼树/优先队列/可重集合/堆
priority_queue <node> q;//node是一个结构体//结构体里重载了‘<’小于符号priority_queue <int,vector<int>,greater<int> > q;//不需要#include<vector>头文件//注意后面两个“>”不要写在一起,“>>”是右移运算符priority_queue <int,vector<int>,less<int>原创 2022-03-13 20:26:53 · 1799 阅读 · 0 评论 -
C++常用知识大总结
C++内存 四区内存四区new delete引用内存四区代码区:存放函数体二进制代码,有操作系统管理全局区:存放全局变量,静态变量(static修饰变量)和常量(string类型数据,const修饰的内容)栈区:由编译器自动分配和释放,存放函数参数值,局部变量。(注意:不要再函数里返回函数变量地址,会被编译器自动释放然后丢失)堆区:由程序员自动分配和释放。不释放就由系统回收。输出变量地址,可以获得结论。new delete使用new申请的内存由堆区分配给程序员,可以由程序员自行使用引用引原创 2022-03-13 19:27:51 · 1412 阅读 · 0 评论