![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构笔记
率真的瓜子
自作聪明终作死,善积跬步将行远
展开
-
Python打印99乘法表
for i in range(1,10): j=1 while(j<=i): print("{}*{}".format(j,i), end = " ") j+=1 print("\r\n")1*1 1*2 2*2 1*3 2*3 3*3 1*4 2*4 3*4 4*4 1*5 2*5 3*5 4*5 5*5 1*6 2*6 3*6 4*6 5*6 6*6 1*7 2*7 3*7 4*7 5*7 6*7 7*7 1*原创 2021-07-07 18:56:53 · 202 阅读 · 0 评论 -
【殷人昆数据结构】第五章5.6 哈夫曼树Huffman代码的调试
哈夫曼树Huffman文章目录哈夫曼树Huffman哈夫曼树的作用主函数data.txt结果:HuffmanNode类定义HuffmanTree树类定义构造函数deleteTree函数output函数mergeTree函数整一个头文件概念:路径长度两个结点之间的路径长度 PL 是连接两结点的路径上的分支数。树的外部路径长度是各叶结点(外结点)到根结点的路径长度之和 EPL。树的内部路径长度是各非叶结点(内结点)到根结点的路径长度之和 IPL。树的路径长度 PL = EPL + IPL。n 个结原创 2020-09-02 17:15:34 · 404 阅读 · 1 评论 -
【殷人昆数据结构】第五章5.5 最大堆MinHeap代码的调试
最大堆MinHeap文章目录最大堆MinHeap主函数MinHeap最大堆类定义构造函数siftDown函数——下滑调整法siftUp函数——上滑调整算法Insert函数——将x插入最大堆RemoveMax函数整一个头文件主函数#include <fstream>#include "MaxHeap.h"using namespace std;int main(){ ifstream fin("data.txt"); assert(fin); int n; assert(fin原创 2020-09-01 14:10:34 · 140 阅读 · 0 评论 -
【殷人昆数据结构】第五章5.4 最小堆MinHeap代码的调试
最小堆MinHeap文章目录最小堆MinHeap主函数MinHeap最小堆类定义构造函数siftDown函数siftUp函数Insert函数RemoveMin函数——最小元素的删除整一个头文件data.txt:853 17 78 09 45 65 87 23主函数#include <fstream>#include "MinHeap.h"using namespace std;int main(){ ifstream fin("data.txt"); assert(fin原创 2020-09-01 11:24:20 · 268 阅读 · 0 评论 -
【殷人昆数据结构】第五章5.3 树的子女-兄弟表示Tree代码的调试
树的子女-兄弟表示Tree文章目录树的子女-兄弟表示Tree主函数树结点类定义Tree类定义RootParent与FindParent函数FirstChild函数NextSiblingPreOrder函数PostOrder函数LevelOrder 函数——层次遍历Find函数RemovesubTree函数IntendedText 函数Output函数ShowTree函数Createtree整一个头文件主函数#include "Tree.h"#include <fstream>#incl原创 2020-08-31 20:33:53 · 274 阅读 · 0 评论 -
【殷人昆数据结构】第五章5.2 线索树Treaded Binary Tree代码的调试
线索树Treaded Binary Tree主函数#include <iostream>using namespace std;#define eptmark '$'#include "ThreadTree.h"#include "ThreadTree.cpp"template<class T>void visit(ThreadNode<T> *p) { cout << p -> data << ' ';}int ma原创 2020-08-30 09:55:43 · 117 阅读 · 0 评论 -
【殷人昆数据结构】第四章5.1 完全二叉树BinaryTree代码的调试
二叉树BinaryTree主函数#include "BinaryTree.h"#include <iostream>#include <fstream>#include <iomanip>using namespace std;void visit(BinTreeNode<int> *t){ cout<<t->data<<" ";}int main(){ ifstream fin("data.txt"原创 2020-08-30 06:46:26 · 815 阅读 · 0 评论 -
【殷人昆数据结构】第四章4.3 稀疏矩阵SparseMatrix代码的调试
稀疏矩阵SparseMatrix主函数#include <iostream>#include "SparseMatrix.h"#include "SparseMatrix.cpp"using namespace std;int main(){ cout<<"+---------------------------------------------------------------+"<<endl; cout<<"#1 Construct原创 2020-08-27 17:05:38 · 987 阅读 · 0 评论 -
【殷人昆数据结构】第四章4.2 广义表Generalized List代码的调试
广义表Generalized List广义表是在顺序表SeqList的基础上来的,主函数#include "GenList.h"#include <fstream>#include <string>#include <cassert>using namespace std;int main(){ ifstream fin1("data.txt"); assert(fin1); string str; fin1 >> str; cou原创 2020-08-26 15:17:18 · 362 阅读 · 0 评论 -
【殷人昆数据结构】第四章4.1 字符串数组AString代码的调试
AString字符串数组又是字符串数组。主函数#include "AString.h"#include <iostream>using namespace std;int main(){ cout << "Please input a string : "; AString str; cin >> str; cout << "The length of the string is: " << str.Length() <原创 2020-08-23 23:49:05 · 413 阅读 · 0 评论 -
【殷人昆数据结构】第三章3.5 优先级队列Priority Queue代码的调试
Priority Queue优先级队列主函数#include <fstream>#include <cassert>#include "PQueue.h"using namespace std;int main(){ ifstream fin("data.txt"); assert(fin); PQueue<int> que; int data; while (!fin.eof()) { assert(fin >> data);原创 2020-08-23 17:00:48 · 159 阅读 · 0 评论 -
【殷人昆数据结构】第二章3.4 链式队列LinkedQueue代码的调试
LinkedQueue链式队列主函数#include <fstream>#include "LinkedQueue.h"using namespace std;int main(){ ifstream fin("data.txt"); assert(fin); LinkedQueue<int> que; int data; while (!fin.eof()){ assert(fin >> data); que.EnQueue(data);原创 2020-08-23 09:54:28 · 568 阅读 · 0 评论 -
【殷人昆数据结构】第二章3.3 顺序队列SeqQueue代码的调试
Queue队列队列是只允许在一端删除,在另一端插入的线性表允许删除的一端叫做队头(front),允许插入的一端叫做队尾(rear)。特性先进先出(FIFO, First In First Out)顺序队列SeqQueue主函数#include "SeqQueue.h"#include <fstream>#include <cassert>using namespace std;int main(){ ifstream fin("data.txt"); as原创 2020-08-23 08:41:40 · 898 阅读 · 0 评论 -
【殷人昆数据结构】第二章3.2 链式栈LinkedStack代码的调试
LinkedStack链式栈链式栈无栈满问题,空间可扩充插入与删除仅在栈顶处执行链式栈的栈顶在链头适合于多栈操作主函数#include "LinkedStack.h"#include <fstream>#include <cassert>using namespace std;int main(){ LinkedStack<int> sta; ifstream fin("data.txt"); assert(fin); int data; w原创 2020-08-22 14:33:38 · 385 阅读 · 0 评论 -
【殷人昆数据结构】第三章3.1 顺序栈的调试
SeqStack顺序栈主函数#include "SeqStack.h"#include <fstream>#include <cassert>using namespace std;int main(){ SeqStack<int> sta; ifstream fin("data.txt"); assert(fin); int data; while (!fin.eof()){ assert(fin >> data); sta.P原创 2020-08-22 10:17:17 · 483 阅读 · 0 评论 -
【殷人昆数据结构】第二章2.4 双向链表代码的调试
Circular List双向链表主函数#include "DblList.h"#include <fstream>#include <cassert>using namespace std;int main(){ DblList<int> list(-1); ifstream fin("list.txt"); assert(fin); fin >> list; cout << "The initial list in th原创 2020-08-21 23:14:42 · 144 阅读 · 0 评论 -
【殷人昆数据结构】第二章2.3 循环链表代码的调试
Circular List循环链表????文件:主函数:#include <fstream>#include "CircList.h"using namespace std;int main(){ CircList<int> list; ifstream fin("list.txt"); assert(fin); fin >> list; cout << "The initial list in the file is:\n" &原创 2020-08-21 22:13:56 · 292 阅读 · 0 评论 -
【殷人昆数据结构】第二章2.2 单链表代码的调试
Single Linked List单链表文件:主函数:#include <fstream> //调用文件输入输出流类#include "LinkedList.h" //调用单链表头文件using namespace std; //声明命名空间int main(){ List<int> list; //实例化类List ifstream fin("list.txt"); //这里将输入文件设为ifstream类型 assert(fin);原创 2020-08-21 12:00:32 · 349 阅读 · 0 评论 -
【殷人昆数据结构】第二章2.1 顺序表代码的调试
SeqList文件:程序功能:输入#include "SeqList.h"#include <fstream>#include <cassert>using namespace std;int main(){ SeqList<int> list(10); //实例化SeqList类为int型,分配10个动态结点给list ifstream fin("list.txt"); //调用文件输入流ifstream,将txt输入缓存区fin原创 2020-08-20 16:34:36 · 521 阅读 · 0 评论 -
【头文件】代码解释
头文件中的#ifndef SEQLIST_H#define SEQLIST_H....#endif的作用是防止多重调用后,类被重复编译出现编译出错的问题。参考https://blog.csdn.net/qq_17034717/article/details/77482705#include <cstdlib>#include <cassert>标准C++中关于C语言头文件的一个重新包装头文件,它将所有C头文件中的函数封装进std名字空间C语言 C++语言std原创 2020-08-20 09:22:23 · 326 阅读 · 0 评论 -
【数据结构】多项式加法与乘法
人类对于多项式相加的思维是这样的:P1=3X5+4X4−X3+2X−1P1 = 3X^5+4X^4-X^3\quad\quad\quad +2X-1P1=3X5+4X4−X3+2X−1P2=2X4+X3−7X2+XP2 = \quad\quad\quad2X^4 +X^3-7X^2+XP2=2X4+X3−7X2+X-----------------------------------------------------------------P=3X5+6X4−7X2+3X−1P = 3X^5 +原创 2020-07-26 09:28:07 · 1751 阅读 · 1 评论 -
【数据结构】队列
什么是队列队列(Queue):具有一定操作约束的线性表插入和删除操作:只能在一端插入,而在另一端删除数据插入:入队列(AddQ)数据删除:出队列(DeleteQ)先来先服务先进先出:FIFO队列的抽象数据类型描述类型名称:队列(Queue)数据对象集:一个有0个或多个元素的有穷线性表。操作集:长度为MaxSize的队列 Q∈QueueQ\in QueueQ∈Queue, 队列元素 item∈ElementTypeitem\in ElementTypeitem∈ElementTypeQu原创 2020-07-25 00:00:39 · 122 阅读 · 1 评论 -
【数据结构】堆栈基本原理
什么是堆栈计算机如何进行表达式求值?这个地方前缀表达式比较容易搞混,来几个????a+b∗c−d/ea+b*c-d/ea+b∗c−d/e 的前缀表达式:−+a∗bc/de-+a*bc/de−+a∗bc/de1+((2+3)∗4)−51+((2+3)*4)-51+((2+3)∗4)−5 的前缀表达式:−+1∗+2345- + 1 * + 2 3 4 5−+1∗+2345这个有一个简单的方法:如:我要将 a+b∗c+(d∗e+f)∗ga+b*c+(d*e+f)*ga+b∗c+(d∗e+f)∗g 变成原创 2020-07-24 16:40:06 · 1651 阅读 · 0 评论 -
【数据结构】线性表及其实现
文章目录一、一元多项式的表示二、什么是线性表(1)线性表的抽象数据类型描述三、线性表的链式存储实现四、广义表关于线性表,可以用数组存放也可以用链表。本文主要为这两段关于链表的解说(比较懂的就不用往后面看了),同时也简单提到了数组。(内容参考自MOOC浙大课程)typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last;}; /*原创 2020-07-24 09:19:11 · 486 阅读 · 0 评论 -
【数据结构】代码时间判断
声明:参考自MOOC浙大课程代码时间判断判断一串代码的好坏,可以调用一个函数clock():这个函数可以捕捉程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”,注意这里不是秒。想要观察秒数的不同需要除以CLK _TCK。常数CLK_TCK:机器时钟每秒所走的时钟打点数。/*clock_t是clock()函数返回的变量类型duration记录被测函数运行时间,以秒为单位(double)(stop-start)/CLK_TCK;是将机器打点时原创 2020-07-21 15:04:51 · 346 阅读 · 0 评论