数据结构
weixin_61756086
磨刀不误砍柴工,读完硕士再打工
展开
-
二叉树的前、中、后、层次遍历(递归算法)
一、前序遍历递归算法struct Tree{ int data; Tree *lchild,*rchild;}int pretree(Tree T){ if(T==NULL) return 0; cout<<T->data; pretree(T->lchild); pretree(T->rchild); return 0;}二、中序遍历递归算法int mintree(Tree T){原创 2022-01-01 14:46:55 · 92 阅读 · 0 评论 -
KMP算法和KMP改进算法
KMP算法1.应用:模式匹配;2.nextval向量的定义: 当模式串中的T[i]和源串匹配失败时,下一次必要的匹配比较是用T[nextval[i]]与源串当前字符比较;若模式串已不可能与当前位置形成匹配则计nextval[i]=-1;3.nextval向量的计算 3.1 最大相同首真子串和尾真子串长度K[i]的计算设k[0]=-1; 根据k[i-1]计算k[i]; 令k=k[i-1],若k=-1,则k[i]=0,否则若t[k]=t[i+1](模式串中元素...原创 2021-12-31 19:26:50 · 317 阅读 · 0 评论 -
三元组 行向量 快速转置
已知三元组表求出行向量,根据行向量实现矩阵的快速转置用转置后的三元组表输出。mu表示行数,nu表示列数,ln表示非零元数量;定义num[]数组,记录矩阵中每列的非零元个数。定义pos[] 记录行向量;例题:稀疏矩阵的存储不宜用二维数组存储每个元素,那样的话会浪费很多的存储空间。所以可以使用一个一维数组存储其中的非零元素。这个一维数组的元素类型是一个三元组,由非零元素在该稀疏矩阵中的位置(行号和列号对)以及该元组的值构成。而矩阵转置就是将矩阵行和列上的元素对换。参考算法5.1中的具体做原创 2022-01-03 17:03:16 · 615 阅读 · 0 评论 -
笔记 二叉树性质的证明
二叉树的性质证明(数据期末考试复习笔记)原创 2021-12-31 19:01:48 · 523 阅读 · 0 评论 -
Floyd 算法
应用:求图中任意两点的最短路径任意两点之间的距离最短要么为直达路径要么为经过某个中间节点的路径。定义 结构体储存 line:任意两点的最短距离 path: 路径上的前一个点初始化 line 其全部为最大值INT_MAX (代表无穷大),使path为当前的起点。对于任意一个节点v,判读是否存在g[i][v].line+g[v][j].line<g[i][j].line,其中i,j满足:i 不等于v,j不等于v,i不等于j若...原创 2022-01-05 17:31:51 · 25 阅读 · 0 评论 -
冒泡排序,插入排序,快速排序复习
#include<iostream>using namespace std;//冒泡排序int maopao(int T[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { if (T[j] > T[j + 1]) { int temp = T[j]; T[j] = T[j + 1]; T[j + 1] = temp;.原创 2022-01-08 20:02:35 · 38 阅读 · 0 评论