
数据结构
jieshenai
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
输出链表,递归从根到当前节点输出某个属性
递归输出,递归获取从根到当前节点的某个属性。原创 2024-02-13 16:39:18 · 469 阅读 · 0 评论 -
vscode C++ 运行头文件
hello.h#include<stdio.h>#ifndef _STDIO_H_#define _STDIO_H_void hello();#endifhello.cpp实现hello.h#include"hello.h"#include<stdio.h>void hello(){ printf("hello world");}mian.cpp#include"hello.h"int main(){ hello();}v原创 2020-07-27 10:15:58 · 1484 阅读 · 0 评论 -
图复杂存储结构图示
有向图:十字链表这种存储结构(十字链表存储结构)既能容易找到一个结点的入边,也能找到一个结点的出边。以A0为例,第一个指针指向A0的前驱,第二个指针指向A0的后继。无向图:边(0,1)就是(1,0),会造成浪费改进无向图:邻接多重表...原创 2020-05-16 11:31:07 · 443 阅读 · 0 评论 -
各种遍历序列确定二叉树分析与总结
文章目录先序和中序遍历序列,确定二叉树后序和中序遍历序列,确定二叉树层次遍历序列和中序遍历序列,确定二叉树先序和后序遍历,不能确定二叉树遍历序列确定二叉树:一个遍历序列不可能确定唯一的一个二叉树。先序和中序遍历序列,确定二叉树已知同一个二叉树的先序和中序遍历序列,能确定吗?主要看中序遍历序列划分左右子树,一直分下去。先序:ABDECFGH(根左右)中序:DBEACGFH(左根右)先序看到A,A在中序的中间,所以A既有左子树又有右子树。A的左子树为DBE,A的右子树为CGFH对DBE分析:原创 2020-05-11 23:27:20 · 2231 阅读 · 0 评论 -
哈夫曼树简略分析
哈夫曼树 (发现编码特别长,由于每个字母出现的频率不一样,考虑用用短的编码表示出现频率高的字母,用长的编码表示出现频率低的字母,这样可以缩短编码的长度)统计字母出现的频率:每次从集合中找2个频率最少的字母出来 ,用他们构成一个新结点,并入集合中。一直下去…出现次数多的离根结点近,出现次数少离根节点远。解码:根据编码串中的字母,沿着哈夫曼树扫描,扫描到字母。接着扫描下一个字母。对一个字符的编码是另一个字符编码的前缀,会出现歧义。哈夫曼编码中,没有一个字符的编码是另一个字符编码的前缀。WP原创 2020-05-11 20:10:37 · 1437 阅读 · 0 评论 -
线索二叉树分析与比较
线索二叉树中序线索二叉树逻辑结构:用空分支指向前驱和后继,如何线索化?一个结点如果有空指针,则左空指针指向其遍历序列前驱,如果有右空指针指向遍历序列后继typedef struct TBTNode { int data; int lTag;//0指向左孩子,1指向前驱 int rTag;// TBTNode *lchild; TBTNode *rchild;}TBTNode;中序线索化代码:...原创 2020-05-11 19:06:00 · 434 阅读 · 0 评论 -
树的遍历
树的先序遍历#include <iostream>using namespace std;typedef struct Branch{ int cIdx;//当前结点序号 Branch *next;//(邻接矩阵中)指向的下一个树结点}Branch;//树的结点typedef struct{ int data; Branch* first;//树结点的第一个孩子存放的地方}TNode;//树的先序列遍历void preOrder(TNode.原创 2020-05-11 10:44:01 · 240 阅读 · 0 评论 -
2021二叉树相关性质的推论
满二叉树的前k行的节点数的公式(等比数组求和即证): 2k-1已知完全二叉树的结点数为n,求二叉树的高度?完全二叉树,2个公式:在一颗树中,设叶结点数为N0,单分支结点数为N1,双分支结点数为N2总结点数 = N0+N1+N2总分支树等于 = N1 + 2N2总分支树等于总结点数 - 1解得:N0 = N2 + 1应用:求左边这棵树空分支的数目,我们给左边图的空分支挂上...原创 2020-05-07 12:31:34 · 591 阅读 · 0 评论 -
为什么memset只能给int数组赋值0或-1,而不支持其他的数字
int a[10];memset(a,0,sizeof(a));//okmemset(a,-1,sizeof(a));//okmenset(a,-1,sizeof(char)*40);//等价于memset(a,-1,sizeof(int)*10);//等价于分析原因:在计算机内数据以补码保存;负数的补码算法:求出负数正数的补码,全部取反,再+1比如 -1:-1的正数是1;...原创 2020-04-26 09:51:43 · 1111 阅读 · 1 评论 -
kmp(含水分)
KMP字符串匹配算法1 KMP字符串匹配算法2 prefix[0] = 0;0 AB1 ABA2 ABAB0 ABABC1 ABABCA2 A...原创 2020-04-25 14:57:11 · 154 阅读 · 0 评论 -
21数据结构-串知识整理
文章目录串串数据类型的定义串的定义串的存储结构:1. 定长顺序存储表示2. 变长分配存储3. 串的基本操作1.赋值操作2.串的比较操作3.串连接操作5.串清空操作4.2 串的模式匹配算法4.2.1 简单模式匹配算法串串数据类型的定义串的定义串是由零个或多个字符组成的有限序列。串中的个数称为串的串的长度,含有零个元素的串叫做空串。char str[] = "abcdef";//输出字符直...原创 2020-04-25 09:51:35 · 611 阅读 · 0 评论 -
考研数据结构-栈和队列
栈(stack)定义:栈是一种只能在一段进行插入或删除操作的线性表。可以插入删除的一端叫栈顶,另一端叫栈底。逻辑结构:栈的逻辑结构属于线性表,只不过在操作上加了一些约束。先进后出。存储结构:顺序栈:int stack[maxSize];int top = -1;//入栈stack[++top] = 1;//出栈int x = stack[top--];top == -1...原创 2020-04-19 00:22:28 · 433 阅读 · 0 评论 -
考研数据结构-线性表
线性表的基本概念与实现1.线性表的定义线性表是具有相同特征数据元素的一个有限序列。元素个数叫做线性表的长度,n(n>=0)表示,n=0(空表)2.线性表的逻辑特性只有一个表头元素,只有一个表尾元素。表头无前驱,表尾无后继,除表头和表尾外,其他元素只有一个直接前驱,也只有一个直接后继。3.线性表的存储结构顺序存储结构(顺序表)和链式存储结构(链表)两种。顺序表 连续存储、顺...原创 2020-04-18 10:54:32 · 385 阅读 · 0 评论 -
clion-debug调试步骤
文章目录clion-debug调试方法(先来一道水题,方便大家理解)操作细节:1. 打断点2.点击debug3.输入数据4.下一条指令clion-debug调试方法 脱坑神器(先来一道水题,方便大家理解)题目要求:获取两个输入a,b,求a+b。输入数据:0001 0002输出结果:3附上有问题的代码:#include <iostream>#inc...原创 2020-04-08 21:00:53 · 22966 阅读 · 8 评论