数据结构
所有文章皆为个人学习笔记及个人实践收获,借鉴参考时若发现不妥之处欢迎提出指正
FifthDesign
愿我们,都有可以自由支配的时间。
展开
-
数据结构_章节调试模板
一个好使不贵的模板最近对数据结构程序不断进行调试,却苦于知识点过于琐碎,没有一把合适的神器辅助一下,那么神器来了,利用下边模板你可以把每个知识点都放进“具体子类”中去,当你把每章知识都概括进去时,恭喜你,期末考试百分在望。一、这里我先奉上我这个模板的结构图(不要用HTML的眼光来审视,我随便画的,日后再学建模语言)简单来说,就是主函数调用三个头文件,对于使用者来说最重要的一个头文件是ConcreteClass.h, 因为只需把零散程序放在这里就可以了,至于工作原理,嗯……,不提也罢,我们直接来看程序原创 2020-12-02 20:48:34 · 276 阅读 · 0 评论 -
任意二叉树节点数、度数与叶子数的关系
二叉树的性质——节点数、度数、叶子节点数的关系对于任意一棵二叉树,如果2度的节点数有n2个,则叶子数n0必定为n2+1(n0=n2+1)(1) 我们假设有二叉树的枝有B个,如果从下往上思考,可以看做是每个节点都有一个枝与之对应,那么可以有B = n - 1成立,之所以有减一是因为根节点没有枝与之相连(2) 如果从上往下考虑,那么枝子的总数就等于度为1的节点乘1,度为2的节点乘2,依次类推,所以这里有B = n11 + n22(3) 将以上两个式子合并可以得:注意这里n1, n2为度数,后边原创 2020-11-24 18:38:58 · 31556 阅读 · 5 评论 -
数据结构-链队列详解(很经典的那种)
链队列的设计与运行1.链队这里的链队,也是队列的一种,只不过运用链表的知识对队列进行再设计还是老话,让我们动手实践~2.代码部分主函数(实现对功能的选择)#include"basic.h"int main(){ int choose = -1; cout << "本次链队列服务共有以下几项服务,请选择" << endl << endl; cout << "1. 链队列的初始化" << endl; cout <&原创 2020-11-16 11:38:07 · 3961 阅读 · 0 评论 -
数据结构-循环队列详解(很通俗的那种)
循环队列的设计与运行1. 队列栈和队列有很大的相似性,但各自有着很独特的特征,栈是先进后出,队列是先进先出,队列很像排队就餐。队列的学习有以下三个过程:顺序队列顺序队列就是根据先进先出原理构想出来的结构,下边是逻辑图:这里用两个下标rear和front对入、出进行监控,开始的时候rear=front=0,对于每次进入一个元素,rear++(所以rear一直是指向空的位置),对于每次出去一个元素,front++循环队列因为队列独特的特征,会出现以下两种溢出的情况:1)真溢出2)假溢原创 2020-11-15 18:29:17 · 1364 阅读 · 0 评论 -
数据结构—如何判断循环队列为空问题
直接回顾一下笔记注意这里浪费一个存储空间的意思是,如果存储空间为5,那么放4个数就说它放满了,是这个意思。原创 2020-11-15 00:13:42 · 841 阅读 · 1 评论 -
数据结构-顺序栈详解(超基础的那种)
顺序栈的设计及运行1. 顺序栈栈是在顺序表和链表的基础上学习的另一种存储形式,是只能在表的一端(栈顶)进行插入和删除的线性表,也就是遵循先进后出的原则,它与线性表一样,仍然是一对一的关系,根据存储关系不同,可以分为顺序栈和链栈,这里我来演示一下顺序栈的C语言操作。还是那句话,没有什么是操作一遍解决不了的,如果还有的话,那就再来一遍,嗯,请叫这句话为lanyan理论,哈哈嗝。2. 代码部分主函数(主函数没啥看的,理解一下我是怎么调用各种函数的操作就行)#include"basic.h"i原创 2020-11-12 13:57:43 · 3219 阅读 · 2 评论 -
数据结构-链栈详解(很朴实的那种)
链栈的设计与运行1.链栈提起链栈,很容易就想到单链表,不过链栈确实可以看做是受限的单链表,因为只能在链表头部进行操作,所以在链栈中也不再附加头结点,栈顶指针就是链表的头指针。老话一句,实践一遍,万物皆好,下边的部分你要是懂了不妨照着葫芦画个瓢吧。2.代码部分主函数(和上一篇文章结构一样,本文如果哪里不懂可参考上一篇数据结构-顺序栈详解(超基础的那种))#include"basic.h"int main(){ int choose = -1; SElemType e; //定义一原创 2020-11-12 22:05:16 · 1072 阅读 · 0 评论