算法与数据结构
HJ_sky
一个正在打怪升级的计算机小白
展开
-
什么是堆、栈?堆和栈的区别
栈区(stack):由编译器自动分配释放,存放函数的参数值、局部变量值等。堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收例程//main.cppint a = 0; //全局初始化区int a = 0; //全局初始化区char *p1; //全局未初始化区main() { int b; //栈 char s[] = "abc"; /...原创 2020-04-17 09:44:24 · 700 阅读 · 0 评论 -
C++反转链表
建立新链表进行反转struct ListNode{ int val; struct ListNode *next;}class solution{public: ListNode* ReverseList(ListNode* pHead){ ListNode* pNode=pHead; //当前节点 ListNode* pPrev=nullptr; //前一个...原创 2020-02-22 15:43:58 · 190 阅读 · 0 评论 -
数据结构——树/二叉树/平衡二叉树/遍历二叉树/红黑树/B树
一、树的基本概念树是由结点和边组成的且不存在任何环的数据结构,没有结点的数称为空树,一个树仅有一个根节点。二、二叉树1.定义二叉树是另一种树型结构,它的特点是每个结点至多有两棵子树,并且二叉树的子树有左右之分,其次序不能任意颠倒。2.二叉树的性质二叉树的第I层上至多有2^(i-1)个节点深度为k的二叉树至多有2^k-1个节点对任何一棵二叉树,如果其叶子结点(度为0)数为m, 度为2...原创 2020-02-18 21:06:24 · 228 阅读 · 0 评论 -
C++中STL的容器适配器以及各容器的方法
一.容器适配器1.stack需要引入的头文件:#include<stack>初始化方式:stack<int> stk;成员函数介绍:stk.empty(); //判断stack是否为空,为空返回true,否则返回falsestk.size(); //判断stack中元素的个数stk.pop(); //删除栈顶元素,但不返回其值...原创 2020-02-13 16:34:51 · 207 阅读 · 1 评论 -
关于二叉树的相关性质与满二叉树/完全二叉树的定义以及二叉树的存储结构
一、二叉树的性质性质一:在二叉树的第i层上至多有2'(i-1)次方个节点性质二:深度为k的二叉树至多有2(k次方)-1个节点性质三:对任意一颗二叉树T,如果其终端节点数为N,度为2的节点数为N2,则N=N2+1二、满二叉树与完全二叉树一颗深度为k且有2的k次方-1个节点的二叉树称为满二叉树通俗的来说,就是二叉树除了叶子节点,其他节点都有左右孩子深度为k的,有n个节点的二叉树,当且仅...原创 2020-02-10 20:48:33 · 337 阅读 · 0 评论