数据结构(Data Structure)
HarvestWu
电子科技大学硕士在读
展开
-
数据结构(Data Structure)——线性表ADT(C/C++语言)
1.线性表定义: 线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。数据元素是一个抽象的符号,其具体含义在不同的情况下一般不同。 在稍复杂的线性表中,一个数据元素可由多个数据项(item)组成,此种情况下常把数据元素称为记录(record),含有大量记录的线性表又称文件(file)。 线性表中的个数n定义为线性表...原创 2018-04-22 21:28:55 · 2619 阅读 · 2 评论 -
C++ 判定值为x的结点的层号
#include <bits/stdc++.h>#define MaxSize 100/* * Created by HarvestWu on 2018/07/18. */using namespace std;typedef char ElemType;//定义二叉树结构typedef struct BTNode{ ElemType data; ...原创 2018-07-18 18:13:39 · 374 阅读 · 0 评论 -
C++ 满二叉树先序序列数组获得后续序列
方法思想:除去当前序列的第一个元素e,将剩下的分成前后相等的两半,分别为当前元素e的左右子树。将e移到整个序列的末尾,再递归处理子树即可。#include <bits/stdc++.h>#define MaxSize 100/* * Created by HarvestWu on 2018/07/18. */using namespace std;typedef c...原创 2018-07-18 18:35:36 · 922 阅读 · 0 评论 -
C++ 二叉树双序遍历
二叉树双序遍历:即访问结点n,然后遍历左子树;再次访问结点n,递归遍历右子树。#include <bits/stdc++.h>#define MaxSize 100/* * Created by HarvestWu on 2018/07/18. */using namespace std;typedef char ElemType;//定义二叉树结构typed...原创 2018-07-18 18:49:35 · 4526 阅读 · 1 评论 -
C++ 判断图两顶点间是否有路径
#include <bits/stdc++.h>#define MaxSize 100/** Created by HarvestWu on 2018/07/18.*/using namespace std;typedef int ElemType;//边表typedef struct ArcNode{ int adjvex; ...原创 2018-07-18 19:08:12 · 5470 阅读 · 1 评论 -
C++ 链表直接插入排序
#include<bits/stdc++.h>/** Created by HarvestWu on 2018/07/24.*/using namespace std;typedef int ElemType;typedef int Status;typedef struct LNode{ ElemType data; struct LNode *next...原创 2018-07-24 20:13:51 · 1724 阅读 · 0 评论 -
C++ 二叉排序树
#include <bits/stdc++.h>#define MaxSize 100#define ArrayLen(array) sizeof(array)/sizeof(array[0])/** Created by HarvestWu on 2018/07/24.*/using namespace std;//定义二叉树结构typedef struct B...原创 2018-07-24 21:02:56 · 305 阅读 · 0 评论 -
C++ 判断二叉排序树
#include <bits/stdc++.h>#define MaxSize 100#define MIN -10000#define TRUE 1#define FALSE 0#define ArrayLen(array) sizeof(array)/sizeof(array[0])/** Created by HarvestWu on 2018/07/25.*/...原创 2018-07-25 20:29:31 · 531 阅读 · 0 评论 -
C++ 图的邻接表转邻接矩阵表示
#include <bits/stdc++.h>#define MaxSize 100/** Created by HarvestWu on 2018/07/20.*/using namespace std;typedef int ElemType;//邻接矩阵顶点类型typedef struct VertexType{ int no; //顶点编号 ch...原创 2018-07-20 20:37:35 · 981 阅读 · 0 评论 -
C++ 重排数组,负值在所有非负值前
#include <bits/stdc++.h>#define MaxSize 100#define ArrayLen(array) sizeof(array)/sizeof(array[0])#define Type template<class T>/** Created by HarvestWu on 2018/07/22.*/using names...原创 2018-07-22 20:12:41 · 882 阅读 · 2 评论 -
C++ 对n个互不相同且均在0—n-1整数排序
#include <bits/stdc++.h>#define MaxSize 100#define ArrayLen(array) sizeof(array)/sizeof(array[0])#define Type template<class T>/** Created by HarvestWu on 2018/07/22.*/using names...原创 2018-07-22 20:21:42 · 506 阅读 · 0 评论 -
C++ 排序算法
#include <bits/stdc++.h>#define MaxSize 100#define ArrayLen(array) sizeof(array)/sizeof(array[0])#define TypeName template<class T>/** Created by HarvestWu on 2018/07/22.*/using n...原创 2018-07-22 20:24:10 · 324 阅读 · 0 评论 -
C++ 计数排序
要求排序的关键字互不相同。#include <bits/stdc++.h>#define MaxSize 100#define ArrayLen(array) sizeof(array)/sizeof(array[0])#define TypeName template<class T>/** Created by HarvestWu on 2018/07...原创 2018-07-22 21:32:39 · 366 阅读 · 0 评论 -
二叉树输出根结点到每个叶结点的路径
#include<cstdio>#include<iostream>#include<cstdlib>#include<cstring>#define MaxSize 100#define ArrayLen(array) sizeof(array)/sizeof(array[0])/** Created by HarvestWu on...原创 2018-10-16 20:36:32 · 2319 阅读 · 0 评论 -
求等长升序序列A、B的中位数
分别求A、B序列的中位数a,b;若a=b;则a或b为所求中位数,算法结束; 若a<b;则舍弃序列A中较小一半,舍弃序列B中较大一半;(注:需保证舍弃长度相等,代码分奇偶处理即保证等长) 若a>b;则舍弃序列A中较大一半,舍弃序列B中较小一半;(注:需保证舍弃长度相等,代码分奇偶处理即保证等长) 在保留的两个序列中,重复1、2、3步,直到两个序列均只含一个数为止,返回较小者为中...原创 2018-11-11 16:42:17 · 399 阅读 · 0 评论 -
C++ 双向冒泡排序算法
#include <bits/stdc++.h>#define MaxSize 100#define ArrayLen(array) sizeof(array)/sizeof(array[0])#define TypeName template<class T>/** Created by HarvestWu on 2018/07/23.*/using n...原创 2018-07-23 20:24:33 · 2116 阅读 · 0 评论 -
C++ 大数加、减、乘、除、乘方运算
#include <iostream>#include <string.h>#include <time.h>#define DIGIT 4#define DEPTH 10000#define MAX 100#define MAXSIZE 200000using namespace std;typedef int bignum_t[MA...原创 2018-07-20 20:40:22 · 2518 阅读 · 0 评论 -
数据结构(Data Structure)——链表ADT(C/C++语言)
#include<stdlib.h>#include<stdio.h>#define OK 1#define ERROR 0#define OVERFLOW -1#define TRUE 1#define FALSE 0typedef int ElemType;//指定链表中数据类型typedef int Status;typedef struct ...原创 2018-04-25 21:20:57 · 424 阅读 · 0 评论 -
C++ 栈实现表达式括号匹配检测
#include <stdio.h>#include <string>#include <stdlib.h>#include <iostream>#include <stack>using namespace std;/*Created by HarvestWu on 2018/5/4.*/int match(char...原创 2018-05-04 21:01:56 · 1147 阅读 · 1 评论 -
C++ 栈计算后缀表达式的值
示例按照只有一位数的数值设计,可用分隔符来处理后,广义化。#include <stdio.h>#include <string>#include <stdlib.h>#include <iostream>#include <stack>using namespace std;/*Created by HarvestWu o...原创 2018-05-04 21:21:30 · 2001 阅读 · 0 评论 -
C++ 实现顺序栈
#include <stdio.h>#include <string>#include <stdlib.h>#include <iostream>#include <stack>#define maxSize 100using namespace std;/*Created by HarvestWu on 2018/5/...原创 2018-05-04 22:28:47 · 467 阅读 · 0 评论 -
C++标准库之栈(Stack)实现进制转换
#include <iostream>#include <stack>using namespace std;int main(){ int b,n,e; cout << "请输入数制转换的进制及数值:"<<endl; cin >> b >> n; cout << "数原创 2018-04-27 14:33:04 · 1941 阅读 · 2 评论 -
C++ 实现链栈
#include <stdio.h> #include <string> #include <stdlib.h> #include <iostream> #include <stack> using namespace std;/*Created by HarvestWu on 2018/5/7.*///链栈...原创 2018-05-07 23:05:47 · 1279 阅读 · 1 评论 -
快排与二分查找
#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#define N 1000#define ElemType intusing namespace std;/*Created by HarvestWu on 2018.5.24.*/...原创 2018-05-24 11:09:57 · 204 阅读 · 0 评论 -
C++ 二叉树的遍历
#include <bits/stdc++.h>#define MaxSize 100/* * Created by HarvestWu on 2018/06/19. */using namespace std;typedef char ElemType;//定义二叉树结构typedef struct BTNode{ ElemType data; s...原创 2018-06-20 21:16:52 · 320 阅读 · 0 评论 -
C++ 由先序遍历、中序遍历结果构建二叉树
1.先序中第一个为根结点;2.在中序中找到该值,以该值所在位置,前后分为左序列,右序列;3.重复1、2处理左右序列,直到子序列只剩下一个元素时结束。其中l2、r1和l2、r2分别表示当前先序、中序元素范围#include <bits/stdc++.h>#define MaxSize 100/* * Created by HarvestWu on 2018/06/21. */u...原创 2018-06-21 21:34:28 · 2317 阅读 · 0 评论 -
C++ 统计二叉树所有结点数、叶子结点数
统计所有结点数://统计所有结点数int n1=0;void countAllNode(BTNode *p){ if(p!=NULL) { ++n1; countAllNode(p->lchild); countAllNode(p->rchild); }}统计叶子结点数://统计叶子结点数int n2=...原创 2018-06-22 19:11:08 · 7824 阅读 · 0 评论 -
C++ 将二叉树叶子结点从左往右顺序串连
关键代码://将叶子结点从左往右顺序串连void linkLeafNode(BTNode *p,BTNode *&head,BTNode *&tail){ if(p!=NULL) { if(p->lchild==NULL&&p->rchild==NULL)//判断是否叶子结点 { ...原创 2018-06-22 19:53:52 · 807 阅读 · 0 评论 -
C++ 将中缀表达式转为后缀表达式
#include <cstdio>#include <cstdlib>#include <cstring>#include <stack>#define maxSize 100/* * Created by HarvestWu on 2018/6/1. */using namespace std;int main(){ s...原创 2018-06-01 18:13:36 · 602 阅读 · 0 评论 -
C++ 串操作
#include <cstdio>#include <cstdlib>#include <iostream>#include <cstring>/* * Created by HarvestWu on 2018/6/1. */using namespace std;typedef struct Str{ char *ch; ...原创 2018-06-01 19:19:31 · 2335 阅读 · 1 评论 -
C++ 稀疏矩阵对应十字链表构建
#include <cstdio>#include <cstdlib>#define maxSize 100/* * Created by HarvestWu on 2018/6/1. */typedef struct OLNode{ int row,col; //行号和列号 struct OLNode *rig...原创 2018-06-01 21:22:11 · 960 阅读 · 0 评论 -
C++ 图的邻接表存储与搜索遍历(DFS、BFS)
#include <bits/stdc++.h>#define MaxSize 100/** Created by HarvestWu on 2018/06/22.*/using namespace std;typedef int ElemType;//边表typedef struct ArcNode{ int adjvex; /...原创 2018-06-25 21:04:30 · 1581 阅读 · 0 评论 -
C++ 邻接表存储下判断无向图是否为树(DFS)
#include <bits/stdc++.h>#define MaxSize 100/** Created by HarvestWu on 2018/06/22.*/using namespace std;typedef int ElemType;//边表typedef struct ArcNode{ int adjvex; ...原创 2018-06-25 21:39:08 · 1883 阅读 · 1 评论 -
求整数序列主元素
定义一个整数序列的主元素为出现次数超过序列元素个数一半的元素。#include <bits/stdc++.h>#define ArrayLen(array) sizeof(array)/sizeof(array[0])/** Created by HarvestWu on 2018/11/11.*/using namespace std;int Majority(i...原创 2018-11-11 16:59:00 · 1100 阅读 · 0 评论