C++
Cathy _Mmm
这个作者很懒,什么都没留下…
展开
-
C++符号匹配判断
符号匹配的核心思想是利用顺序栈来解决,此处的符号只有四类“{}”,“[]”,“<>”,“()”,输入一串符号 ,其中如果是“{[(<”这四种,则直接放入栈中,反正如果是“)}]>”这四类则要考虑栈中当前的符号是否与之对应,很显然,如果当前栈中的符号不匹配,那么符号必定不匹配。反之最后进行一系列入栈出栈后,这串字符串已经遍历完毕且栈为空,那么符号匹配成功。代码如下bool bracket(char *chars){ Stack<int> stack = Stac.原创 2021-03-06 20:26:19 · 1146 阅读 · 1 评论 -
数据结构C++:链表
顺序表的优点是能够快速查找,但是在进行删除和添加操作时,效率不高。而链表查找的效率没有顺序表那么快,但是删除与添加操作的速度较快链表不像顺序表,在内存中是连续的,所以链表的结构中不仅要有所存储的数值,还要有下一个节点的信息。插入操作首先将要插入的节点指向下一个节点再将下一个指向要插入的节点代码如下:template <class T>Node<T>::InsertAfter(Node<T> * p){ p->next = next; nex原创 2020-10-31 23:39:45 · 267 阅读 · 2 评论 -
数据结构学习C++:队
队是一种线性表,它进队的一端是队尾,出队的一端是队头由于队只能在队尾插入队元素,在队头删除队元素,所以先入队的元素可以先出队,后入队的元素后出队,所以队是先进先出表或者后进后出表1.队的构造函数根据队的需求,首先是需要申请一组连续的内存空间申请内存空间得知道内存空间的最大长度再进行一系列操作时,还要有队头和队尾,所以还需要,队头指针和队尾指针,且初始化为front=rear=02.队的判空判满问题首先要知道front是指向队头的,而rear是指向队尾的下一个位置由于队的数据结构只能在队原创 2020-10-29 14:31:00 · 678 阅读 · 0 评论 -
数据结构学习C++:栈
栈也是一种线性表,它的插入与删除都只能在一端进行,这一端叫做栈顶,另一端称为栈底。插入元素叫做进栈,删除元素叫做出栈。由于栈只能在一端进行插入与删除,那么后插入的元素可以先删除,先插入的元素后删除,所以栈是先进后出表,或是后进先出表。1.构造函数一系列的操作都与栈顶分不开,所以一定要定义栈顶指针,栈顶指针是指向当前要操作的元素的,在没有插入任何元素的情况下,栈顶指针top应该为-1.还要设置栈空间的大小MaxSize申请长度为MaxSize的内存,来储存栈元素代码如下:template &原创 2020-10-28 16:56:07 · 326 阅读 · 0 评论 -
数据结构学习C++:线性结构
线性表的插入操作:1.首先在插入数据之前是要先判断一下数组已满和查找下标是否合法2.在指定位置i插入数据x,原来就是将下标为i与i后面的数据向后移3.i位置已经腾出来,此时将x插入代码如下template <class DataType>void SeqList<DataType>::Insert(DataType x,int i){ if(len >= MaxSize) throw "Overflow"; if(i <1 ||i>len+1)原创 2020-10-27 14:57:13 · 382 阅读 · 0 评论 -
C++进阶:笔记整理2
全局区:其中包括全局变量,静态变量栈区:局部变量存放区域堆区:由程序员自己创建出来的引用:notes:1.通俗的讲就是给变量起别名,相当于指针常量2.数据类型 &别名 = 原名int a=10;int &b=a;3.引用必须要初始化,即int &b;//错误4.引用在函数的传递时,可以做到地址传递的效果,实现值的交换myswap02(int &a,int &b){ int temp = a; a=b; b=temp;}原创 2020-10-24 23:39:25 · 155 阅读 · 0 评论 -
C++学习:笔记整理
1.水仙花数描述:千以内的三位数中,有个位的三次方+十位的三次方+百位的三次方=这个三位数的数就是水仙花数代码如下int i=100; do{ int a=i/100; int b=i%10; int c=(i/10)%10; int sum=a*a*a + b*b*b + c*c*c; if(i==sum){ cout << sum <<endl; } i++; } while(i<1000);2.break,continue原创 2020-10-22 14:45:04 · 195 阅读 · 0 评论