c++
前程韶光
学生
展开
-
二叉树:已知先序,中序求后序遍历
#include <iostream>#include <cstring>#define MAX 50+3using namespace std;typedef char Elem_Type;typedef struct BiTree{ Elem_Type data;//数据 struct BiTree* Lchild;//左孩子 struct BiTree* Rchild;//右孩子}BiTree; //要查找的元素 查找的地方原创 2021-06-25 16:49:06 · 188 阅读 · 0 评论 -
c++多态
多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。#include<iostream>using namespace std;class shape{protected: double width; double length;public: shape(double a,double b); // void area() // { // co原创 2021-05-07 19:11:11 · 106 阅读 · 0 评论 -
关于值类型、引用类型以及“栈”跟“堆”的关系
关于值类型、引用类型以及“栈”跟“堆”的关系值类型,声明一个值类型的时候,是在“栈”中开辟一个内存空间来存放对应的值,当值类型的值发生改变的时候,则直接修改该内存空间所保存的值。例:int n1 = 5;int n2 = n1;Console.WriteLine(n1 + " "+ n2); // 5 5n2 = 7;Console.WriteLine(n1 + " " + n2) // 5 7这里首先在“栈”中开辟一个内存空间用来保存 n1 的值 5,接着再在“栈”中开辟原创 2021-05-06 23:12:50 · 659 阅读 · 0 评论 -
创建对象,删除对象
有两种方法创建对象:方法一:ClassName object(param);1这样就声明了一个ClassName类型的object对象,C++会为它分配足够的存放对象所有成员的存储空间。注意:为节省存储空间,C++创建对象时仅分配用于保存数据成员的空间,而类中定义的成员函数则被分配到存储空间中的一个公用区域,由该类的所有对象共享。1例如,我定义了一个这样的类:class Rec{public:Rec(int width,int height);~Rec();//methodsin转载 2021-05-06 23:10:11 · 549 阅读 · 0 评论 -
c++lambda函数学习笔记
//Lambda 函数与表达式//C++11 提供了对匿名函数的支持, 称为 Lambda 函数(也叫 Lambda 表达式)。//Lambda 表达式把函数看作对象。Lambda 表达式可以像对象一样使用,// 比如可以将它们赋给变量和作为参数传递,还可以像函数一样对其求值。//Lambda 表达式本质上与函数声明非常类似。#includeusing namespace std;class test{public:void hello() {cout << “test h原创 2021-05-05 19:54:50 · 121 阅读 · 0 评论 -
c++const关键字小节
一、const修饰普通类型的变量const int a = 7;int b = a; // 正确a = 8; // 错误,不能改变a 被定义为一个常量,并且可以将 a 赋值给 b,但是不能给 a 再次赋值。对一个常量赋值是违法的事情,因为 a 被编译器认为是一个常量,其值不允许修改。接着看如下的操作:实例#includeusing namespace std;int main(void){const int a = 7;int p = (int)&a;*原创 2021-05-05 19:06:16 · 79 阅读 · 0 评论 -
判断完全二叉树及求二叉树深度完整代码
完全二叉树定义:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。所以判断完全二叉树须满足两个条件:1所有叶子节点处的深度均为二叉树的深度2不存在只有右孩子而没有孩子的节点求深度即可,主要是递归有点绕递归一次,深度加一,返回一次,深度减一#include<iostream>using namespace std;#define ElemTy原创 2021-04-19 20:04:36 · 1037 阅读 · 0 评论 -
二叉树的基本操作(建立,递归遍历和层次遍历)
1 建立二叉树输入一个二叉树的先序序列,构造这棵二叉树为了保证唯一地构造出所希望的二叉树,在键入这棵树的先序序列时,需要在所有空二叉树的位置上填补一个特殊的字符,比如,‘#’。在算法中,需要对每个输入的字符进行判断,如果对应的字符是‘#’,则在相应的位置上构造一棵空二叉树;否则,创建一个新结点。整个算法结构以先序遍历递归算法为基础,二叉树中结点之间的指针连接是通过指针参数在递归调用返回时完成。头文件:#include<iostream>using namespace std;#def原创 2021-04-19 16:39:37 · 786 阅读 · 0 评论 -
循环队列的基本操作及杨辉三角的有关算法
如果要求计算并输出杨辉三角前 n 行的值,;‘则队列的最大空间应为 n+2。假设队列中已存有第 k 行的计算结果,并为了计算方便,在两行之间添加一个“0”作为行界值,则在计算第 k+1 行之前,头指针正指向第 k 行的“0”,而尾元素为第 k+1 行的“0”。由此从左到右依次输出第 k 行的值,并将计算所得的第 k+1 行的值插入队列的基本操作为:头文件:#include<iostream>#define QelemType int#define MAXSIZE 100typedef原创 2021-04-11 11:00:28 · 324 阅读 · 0 评论 -
队列的基本操作(初始化,销毁,出队,入队,取队头元素,求队列长度、判队空、判队满)
#include<iostream>using namespace std;#define QelemType inttypedef struct QNode{ QelemType data; struct QNode* next;}QNode, * QueuePtr;typedef struct{ QueuePtr front;// 队列的头指针 QueuePtr rear; // 队列的尾指针 int length = 0;}LinkQueue;void Init原创 2021-04-11 10:54:45 · 1163 阅读 · 2 评论 -
栈的应用:表达式求值问题进阶(含多位数和小数的多项式)
主要是polrear函数即后缀表达式的计算不同void polrear(stack& Pol, char PolRear[1000], char& temp1, char& temp2, int& length, int a[1000])//构造后缀表达式{ for (int h = 0; h < 1000; h++)//数组a的作用在与记录所有的多位数,相当于标签,0表示为运算符,其他则为操作数 { a[h] = 0; } int i = 1; ji原创 2021-04-10 15:53:53 · 832 阅读 · 0 评论