![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构(C++版本)
文章平均质量分 87
寒露凝夜紫
计算机科学与技术专业,喜欢网络这一方面
展开
-
排序
1.冒泡排序(可以大的升上去,也可以小的降下来)大的升上去: int a[n]={}; //n个数据 for(i=0;i<n-1;i++) //n个数据,就需要比较n-1趟,每一趟最大的移到末尾 for(j=0;j<n-1-i;j++) //前几趟末尾已排好的数据,不需再排序 if(a[j]&g...原创 2018-05-02 11:28:48 · 112 阅读 · 0 评论 -
链表
链表、头指针、头结点(经典)头指针、头结点、第一个结点的区别与联系?(1)头指针明显是一个指针,指向头结点头节点的next指针指向第一个节点第一个节点是一个节点,data变量存放第一个数据,next指针变量指向第二个节点(2)头指针是指向头结点的指针头结点是出于第一个结点之前的空结点第一个结点就是出于第一个的结点(除头结点外)(3)一个链表中,可以没有头结点,但是一定有头指针,头指针是对单链表的标...翻译 2018-05-03 15:19:56 · 135 阅读 · 0 评论 -
递归
递归: 找到递推公式,或者从本规模到下一规模的处理方式 找到结束条件,即递归出口可参考:C++递归算法:我的理解 递归算法讲解C++中的全排列函数next_permutation(start,end)和prev_permutation(start,end)可参照:C++STL中全排列函数next_permutation的使用 ...原创 2018-05-15 21:48:46 · 124 阅读 · 0 评论 -
递归2:递归的一般解题思路
牛客网给出题目适合用递归,但是接口函数中的传参无法用递归时,利用自定义的printHelper( , )来实现递归递归的一般思路 printHelper(){ baseline; //递归返回条件chose; //选择其中的一种情况exploer //递归操作unchose ...原创 2018-05-24 10:46:09 · 871 阅读 · 0 评论 -
位运算
1.二进制的位运算位运算只有五种: 与(&) 或(||) 异或(^) 左移(<<) 右移(>>)1.异或:相异为1,相同为02.左移:左边舍弃,右边补00000 1010 << 2 = 0010 10001000 1010 << 3 = 0101 00002.右移:...原创 2018-06-21 21:11:20 · 241 阅读 · 2 评论 -
栈
1.栈的基础知识栈:先进后出,只能操作栈顶元素访问栈顶元素可用stack.top() , 栈中只有栈顶元素可见,其他站内元素不可见栈可以用数组实现,也可以用链表实现,当栈内元素为空时,top 值为-1,2.栈的基本操作函数empty() 堆栈为空则返回真pop() 移除栈顶元素push() 在栈顶增加元素size() 返回栈中元素数目top() 返回栈顶元素3.C++栈的用法及实现可参照:C++栈...原创 2018-06-25 17:05:35 · 171 阅读 · 0 评论 -
二叉树基础及特殊的二叉树
1.二叉树的分类 满二叉树:从高到低,除了叶节点外,所以节点左右节点都存在。 完全二叉树:比满二叉树少几个叶节点,从左向右放子节点。 平衡二叉树:空树或者它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树也都是平衡树。 二叉搜索树:空树或者二叉树的所有节点比他的左子节点大,比他的右子节点小。 红黑树:不仅是具有二叉搜索树的属性,还具有平衡树...原创 2018-07-11 16:38:24 · 395 阅读 · 0 评论 -
数组
*创建数组: **一维:** 动态: char* c2 = new char[n]; 静态: char c2[100] **二维:** 静态:int a[5][6]; 动态: (1)int **a1 = new int*[5]; for (int i = 0; i &amp;lt; 6 ; ++i) { a...原创 2018-09-03 22:03:24 · 108 阅读 · 0 评论