笔记
马狗
这个作者很懒,什么都没留下…
展开
-
类的静态方法
静态的内存空间是固定的,相对来说更省资源。创实例的创一个实例就要开辟一个新内存,耗费资源静态方法属于类所有,类实例化前即可使用;非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员;因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存;static内部只能出现static变量和其他static方法!而且static方法中还不能使用this等关键字,因为它是属于整个类;静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁;静态原创 2021-07-09 17:01:05 · 2056 阅读 · 0 评论 -
队列的链式存储
队列的链式存储队列也是一种特殊的线性表,队列相比于链表,是在链表的一端插入元素,另外一端取出元素,遵循“先进先出”的原则,与栈相反,队列的存储也用到了链表的API函数//头文件1-链表的api函数及定义的节点#ifndef _MYLINKLIST_H_#define _MYLINKLIST_H_typedef void LinkList;typedef struct _tag_LinkListNode{ struct _tag_LinkListNode* next;}LinkListNo原创 2020-11-17 17:21:52 · 265 阅读 · 0 评论 -
栈的应用-括号的就近匹配
栈的应用-括号的就近匹配代码块中,编译器通常会帮我们做符号等一些语法检查,提示在哪些地方语法错了,其中符号的就近匹配是用栈做的;思路和代码如下://就近匹配是对栈的应用,程序中对括号的“就近匹配”用到的就是栈的思想//1.从第一个字符开始扫描;2.当遇见普通字符的时候忽略;3.当遇见左符号的时候压栈;4.当遇见右符号时从栈顶弹出符号,并进行匹配// 匹配成功:继续读入下一个字符// 匹配失败:立即停止并报错//结束:// 成功:所有字符扫描完毕,且栈为空// 失败:匹配失败或所有字符扫描完原创 2020-11-16 16:09:58 · 204 阅读 · 0 评论 -
链式栈的实现
链式栈的实现栈相比于链表,它是一种特殊的数据模型,两者既有联系(通过链表的api函数可以改造出栈的api函数,这其中的原因在于两者的底层逻辑是有相似的地方的,即:通过在链表的头部操作元素,就可以模拟出栈),区别在于,链表和栈之间的对变量生命周期的管理不一样;在实现栈的过程中,我们不可避免的用到了链表的api函数;//头文件1:栈的头文件,定义了数据类型和栈的api函数#define _MY_LINKSTACK_Htypedef void LinkStack;//把栈节点适配成链表节点,添加进链表库原创 2020-11-16 11:43:44 · 209 阅读 · 0 评论 -
C++实现链表
c++实现链表前面已经用c语言实现了传统链表和企业链表,其实不管是用c++还是c语言,实现链表的核心思路都是一样的,根本的区别在于语法上,以及在一些变量的生命周期管理上稍有差异;//c++LinkList.h#pragma once#include<iostream>using namespace std;template <typename T> struct Node{ T t;//缓存t元素 struct Node<T>* next;};原创 2020-10-06 21:00:34 · 391 阅读 · 0 评论 -
c语言实现企业链表
c语言实现企业链表我们最早学习的线性表分为顺序表和链表,顺序表即用数组来模拟链表,他的内存是连续的;缺点在于事先要知道大小,但是实际生活中我们并不能实现准确的预知对象有多大,需要多少内存。因此就诞生了链式存储的顺序表,即链表;链表也是分为三种,传统链表、内核链表,和企业链表。那么这三种链表分别有什么特点呢?(1)传统链表:传统链表区别于数组模拟的线性表,可以不用管到底需要多大的内存,比较方便。第二个特点是他的内存不是连续的,每个结点包含一个数据域和指针域。每个节点的指针域保存的是下一个节点的地址。他的缺原创 2020-10-05 19:50:35 · 316 阅读 · 1 评论 -
2020-09-23
第一篇博客从今儿开始就在这里记录自己的学习过程啦,加油啊,坚持原创 2020-09-23 16:26:14 · 47 阅读 · 0 评论