
c++
qw1998
may you be a high-flyer
展开
-
类中指针的使用
类中自动生成的函数缺省构造函数代码块没有任何操作,为空代码块。数据成员的值为任意值。拷贝构造函数代码块为空代码块 对类的非静态数据成员进行以”成员为单位”逐一拷贝构造 固定类型的对象拷贝构造是从源对象到目标对象的”逐位”拷贝 析构函数代码块为空代码块 如果动态分配内存,并没有将其分配的内存释放赋值运算符代码块为空代码块 对类的非静态数据成员进行以”成员为单位”逐一赋值 固定类型的对象赋值是原创 2017-05-14 20:19:43 · 1395 阅读 · 0 评论 -
简单单链表操作(list)
链表实质链表的实现链表实质链表是一种数据结构,通过指针来作为节点,将其连接起来,节点动态生成,链表的存储方式为动态,使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。反之,即失去了数组所拥有的优点。 链表有头指针,首指针,尾指针。 头指针指向首指针,不包含数据,如果链表为空指向NULL。 首节点包含的指针指向下一个节点,且包含原创 2017-04-22 11:45:10 · 398 阅读 · 0 评论 -
链表的基本操作
链表链表的插入 如图所示 插入操作时,需要获得插入位置的前一个节点,这样插入到前一个节点的后方,即插入到n位置,因为前一个节点的next原本指向后一个节点,即位置n(n从0开始,head不算)。 所以当n为0时,head指向位置为0的节点,操作为如下: 当n大于0时,操作如下:// n == 0Node * p = new Node;p->data = data //数据赋值原创 2017-12-18 12:21:57 · 300 阅读 · 0 评论 -
递归之再探
递归是好理解还是不好理解?原创 2017-12-13 00:11:42 · 349 阅读 · 0 评论 -
出栈问题的讨论
原作者链接n个元素进栈,共有多少种出栈顺序? 支持原创 人人有责n个元素进栈,共有多少种出栈顺序?基于栈的问题分析 我们把n个元素的出栈个数的记为f(n), 那么对于1,2,3, 我们很容易得出: f(1) = 1 //即 1f(2) = 2 //即 12、21f(3) = 5 //即 123、132、213、321、231 然后我们来考虑f(4), 我们给4个转载 2017-11-28 13:14:57 · 280 阅读 · 0 评论 -
数据结构之逻辑结构与存储结构
转自逻辑结构和存储结构 百度百科:数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。结合今天在复习过程中新的理解,主要总结一下逻辑结构和存储结构。什么是逻辑结构? 简单说,逻辑结构就是数据之间的关系。而按数据之间的关系来说,逻辑结构大概可以分为两种:线性结构和非线性结构(集合、树、网)。线性结构:有且只有一个开始结点和一个终端转载 2017-11-27 23:07:37 · 1791 阅读 · 0 评论 -
C++之日历
日历的元素 - 年月日 - 星期 如何加入星期元素? 提示:1900.1.1为星期一 以此类推,根据相差天数获得每个月第一天的星期数#include <iostream>using namespace std;class Calendar { private: int year,month,day; public: Calen原创 2017-11-27 22:43:25 · 665 阅读 · 0 评论 -
二叉树先序遍历,中序遍历,后序遍历,层次遍历。
原理先序遍历 又可叫前根序遍历,先遍历根节点,再遍历根节点的左子树,然后遍历根节点的右子树。中序遍历 又可叫中根序遍历,先遍历根节点的左子树,再遍历根节点,然后遍历根节点的右子树。后序遍历 又可叫后根序遍历,先遍历根节点的左子树,再遍历根节点的右子树,然后遍历根节点。层次遍历 对整棵二叉树按从上到下,对每一层按从左到右的顺序进行遍历。这里我们需要借助队列:先访问节点的孩子节点也应比后原创 2017-11-14 19:40:28 · 1889 阅读 · 0 评论 -
IO与流的处理
流是什么流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具。在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的,而不用关心流的另一头数据的真正流向。流不但可以处理文件,还可以处理动态内存、网络数据等多种数据形式。如果你对流的操作非常熟练,在程序中利用流的方便性,写起程序会大大提高效率的。 ——百科 流又是类。 各种流的关系 cin,cout原创 2017-05-08 23:27:24 · 417 阅读 · 0 评论 -
二进制补码,反码,原码
原文网站加法器计算机里面,只有加法器,没有减法器,所有的减法运算,都必须用加法进行。 即:减去某个数字(或者说加上某个负数)的运算,都应该研究如何用加法来完成。模,补数在日常生活当中,可以看到很多这样的事情:把某物体左转 90 度,和右转 270 度,在不考虑圈数的条件下,最终的效果是相同的;把分针倒拨 20 分钟,和正拨 40 分钟,在不考虑时针的条件下,效果也是相同的;把数字 87,减去转载 2017-10-18 15:56:53 · 1360 阅读 · 0 评论 -
引用数组,指针数组与数组引用,数组指针
如何区分引用数组与数组引用 由于[]的优先级,下列先与[]结合,首先确定array为一个数组,然后&与int结合,所以array为一个数组,数组元素为int类型的引用,所以为引用数组。 int &array[]; 而下列中由于括号,array先与&结合,确定array为一个引用,然后与[]结合,该引用指向一个数组,再然后,该数组的元素为int,所以为数组引用,即数组的引用。 int (&a原创 2017-06-01 20:15:24 · 358 阅读 · 0 评论 -
类成员中冒号初始化与花括号类赋值问题(未经应许,所以发网站收藏)
http://blog.youkuaiyun.com/zj510/article/details/8135556转载 2017-05-26 23:53:34 · 660 阅读 · 0 评论 -
递归(recursion)
递归递归的原理递归的用途递归代码递归的缺点递归递归的原理递归(recursion),就是在函数代码中调用自己,使得重复的事简单化,递归是一个过程。不能无限地调用自己,递归必须有一个出口。递归的用途多用于数据结构按照递归建立,或重复执行一项操作。 典型的递归实列: 斐波纳契数列(1,1,2,3,5,8,13,21……..); 进制转换 字符操作 全排列 排序原创 2017-04-21 20:16:58 · 1148 阅读 · 0 评论 -
cin输入数据(cin不丢弃回车符,>>会跳过回车符)
问题在利用cin输入数据,如果碰到字符输入,可能导致输入问题。 可以利用cin.get(),吸收回车符。 例如: cout<<”请输入学好、年龄和入学成绩:”<#include <iostream>using namesapce std;int main(void) { char m,n; cin >> m; cin >> noskipws转载 2017-05-08 21:28:22 · 5656 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似转载 2017-05-25 19:26:14 · 205 阅读 · 0 评论 -
stack(栈堆)
栈堆的一些探究栈堆的原理与原则栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。读和取都在顶部进行,底部一般是不动的。栈就是一种类原创 2017-05-14 21:44:48 · 361 阅读 · 0 评论 -
哈希表Hashtable
哈希表的定义 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(ke原创 2018-04-17 15:47:09 · 235 阅读 · 0 评论