
C/C++
C/C++沉思录
mootun
放荡不羁程序员
展开
-
蛮力法的基础工具——求幂集、全排列算法
//幂集对象 vector<vector<int>> pwSet{vector<int>()}; //全排列对象 vector<vector<int>> arrage{vector<int>{1}}; //采用增量穷举思想构造幂集 void getSet (int n) { vector<vector<int>> tempPwSet; // 每次循环以现有集合为基础新增集合 for (int原创 2020-08-30 16:03:23 · 632 阅读 · 0 评论 -
天天面向对象编程的你,对数据抽象和封装的理解有多少?类的基本思想——数据抽象和封装
类的基本思想:数据抽象、封装。 数据抽象是一种依赖于接口(Interface)和实现(implementation)分离的编程(以及程序设计)技术。类的接口包括用户所能执行的操作;类的实现则包括:类的数据成员、实现接口的函数体、以及类的私有函数。 封装实现了类的接口和实现的分离,封装后的类隐藏了它的实现细节,也就是说,类的用户对类是如何实现的一无所知,只能使用接口而无法访问实现部分。 综上所述,数据抽象从两方面理解: 第一,定义一个抽象数据类型的过程; 第二,类对用户来说是一个抽象概念,用户不知道类的具体实原创 2020-05-11 09:25:22 · 508 阅读 · 0 评论 -
算法_前序遍历二叉树的非递归实现(C/C++)
为了加深对二叉树遍历思想的理解,以及锻炼分析和解决问题的能力,以下对前序遍历二叉树的非递归实现算法进行分析、实现及总结。 分析:给定任意一棵二叉树,对其进行前序遍历,即先访问根结点,然后访问左其孩子,再访问其右孩子。但是用二叉链实现的二叉树其结点的本质是具有两个指针域的单向链表的结点,既然是单链表结点,就意味着直接向前访问了某个结点后,将无法访问这个结点的兄弟结点,因此需要考虑将要访问某个孩子结点...原创 2020-02-29 19:56:49 · 789 阅读 · 0 评论 -
数据结构_栈(stack)
栈(stack)——基本定义、性质与代码实现(C/C++) 1. 栈(stack)是什么? 栈的定义: 只允许在一端进行插入或删除操作的线性表。 2. 栈(stack)的性质 从定义可知,栈是一种操作受限的线性表,允许插入或删除操作的一端称为栈顶(Top),另一端称为栈底(Bottom),栈顶的当前位置是动态的——随元素的插入或删除而改变,因此栈有一个称为栈顶指针的位置指示器来指示栈顶当前位置。...原创 2020-02-28 14:34:12 · 1647 阅读 · 1 评论