数据结构
大道殊同
野生程序员
展开
-
中缀表达式转后缀表达式 求值
#include<cstdio> #include<iostream> #include<string> #include<stack> #include<cmath> #include<cstring> using namespace std; void Get(string a, char b[]);//中缀表达式转后缀...原创 2018-03-29 18:33:17 · 540 阅读 · 0 评论 -
二叉搜索树的操作集
二叉搜索树的操作集#include <stdio.h> #include <stdlib.h>typedef int ElementType; typedef struct TNode *Position; typedef Position BinTree;//Position==BinTree 结构体指针 struct TNode{ ElementType Data; BinTre原创 2017-10-09 17:59:15 · 189 阅读 · 0 评论 -
04-树4 是否同一棵二叉搜索树
04-树4 是否同一棵二叉搜索树 #include<stdio.h> #include<stdlib.h> #include<cstdio> #include<iostream> #include<stack> #include<queue> #include<string.h> using namespac原创 2017-10-01 09:51:27 · 136 阅读 · 0 评论 -
03-树3 Tree Traversals Again
03-树3 Tree Traversals Again #include<stdio.h> #include<stdlib.h> #include<cstdio> #include<iostream> #include<stack> #include<queue> #include<string.h> usi原创 2017-09-28 16:05:53 · 214 阅读 · 0 评论 -
List Leaves
03-树2 List Leaves #include<cstdio> #include<iostream> #include<stack> #include<queue> using namespace std; #define N 20 #define Null -1 queue<int> q; struct TreeNode {...原创 2017-09-26 17:36:56 · 166 阅读 · 0 评论 -
二叉树的遍历
#include<stdio.h> #define ElemType int typedef struct BiTNode { ElemType data; struct BiTNode *lchild, *rchild;}BiTNode,*BiTree;void PreOrder(BiTree bt)//先序遍历二叉树 { if(bt!=NULL) {原创 2017-09-26 16:04:44 · 121 阅读 · 0 评论 -
树的同构
树1 树的同构#include<stdio.h> #define N 20 #define Null -1 int First; struct TreeNode { char Element; int Left,Right; }Tree1[N],Tree2[N];int main() { int BuildTree(struct TreeNode T[]); int原创 2017-09-25 16:53:40 · 268 阅读 · 0 评论 -
02-线性结构2 一元多项式的乘法与加法运算(20 分)
02-线性结构2 一元多项式的乘法与加法运算(20 分)#include<stdio.h> #include<iostream> #include<algorithm> using namespace std; struct node { int a,b; }f1[1010]; int f2[1010]={0}, f[2010]={0};int main() { int n1转载 2017-09-14 21:55:55 · 426 阅读 · 0 评论 -
02-线性结构4 Pop Sequence(25 分)
02-线性结构4 Pop Sequence(25 分)#include<vector> #include<stack> #include<stdio.h> #include<algorithm> #include<iostream> using namespace std; int m,n,k; int check(vector<int> v) { int i=0; int num=转载 2017-09-14 21:53:47 · 211 阅读 · 0 评论 -
两个有序链表序列的合并
两个有序链表序列的合并#include <stdio.h> #include <stdlib.h>typedef int ElementType; typedef struct Node *PtrToNode;struct Node { ElementType Data; PtrToNode Next; }; typedef PtrToNode List;List Read();原创 2017-09-12 22:57:00 · 483 阅读 · 0 评论 -
栈
Replace To Make Regular Bracket Sequence Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Status Description You are given string s consists of openin原创 2017-03-08 12:46:59 · 124 阅读 · 0 评论 -
关于二分查找
STL函数: lower_bound(begin,end,index) 返回大于等于index的第一次出现的位置; upper_bound(begin,end,index)返回大于index的第一次出现的位置。 具体操作如下: #include #include #include using namespace std; int main() { int a[100];原创 2017-03-08 12:46:16 · 143 阅读 · 0 评论 -
07-图4 哈利·波特的考试
07-图4 哈利·波特的考试 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; #define INF 0xfffffff int pri[1010][1010];//两个顶点之间距离 int dis[1...原创 2018-05-02 17:44:17 · 146 阅读 · 0 评论 -
最大堆
#include<stdio.h> #include<stdlib.h> #define MaxData 0x7fffffff typedef struct HeapStruct { int *Elements; int Size; int Capacity; }* MaxHeap; MaxHeap Create(int Maxsize); int ...原创 2018-06-01 16:32:47 · 166 阅读 · 0 评论 -
堆中的路径
堆中的路径 #include<stdio.h> #include<stdlib.h> #include<cstdio> #include<iostream> #include<stack> #include<queue> #include<string.h> using namespace std; #def原创 2017-10-10 16:54:52 · 200 阅读 · 0 评论 -
File Transfer
File Transfer#include<stdio.h> #include<stdlib.h> #include<cstdio> #include<iostream> #include<stack> #include<queue> #include<string.h> using namespace std; #define N 10010int Fa[N]; void Init() {原创 2017-10-10 22:31:17 · 2319 阅读 · 0 评论 -
线性表的链式结构
#include<stdio.h> #include<stdlib.h> #define DES 10 typedef struct node { int data; struct node *next; }LNode, *LinkList; LNode *Creat_LinkListEnd()//头插法建立链表 { LNode *ptr=(LNo...原创 2018-02-03 23:00:31 · 206 阅读 · 1 评论 -
散列2 Hashing
散列2 Hashing#include<iostream> #include<cstdio> #include<string.h> #include<algorithm> using namespace std;#define N 100010 #define M 100000int A[N]={0}; int B[N]={0};bool isPrime(int n) { if(n < 2)原创 2017-11-21 15:41:21 · 216 阅读 · 0 评论 -
散列3 QQ帐户的申请与登陆
散列3 QQ帐户的申请与登陆#include<iostream> #include<cstdio> #include<string.h> using namespace std; #define N 100010 #define M 100000 struct QQ { char Acnumber[15]; char Password[20]; int state; }A[原创 2017-11-19 17:29:03 · 384 阅读 · 0 评论 -
KMP
#include<stdio.h> #include<string.h> #define N 10010 void get_next(char s[], int next[]) { int j=1; next[1]=0; int k=0; while(j<strlen(s+1)) { if(k==0||s[j]==s[k])原创 2017-11-16 21:04:42 · 226 阅读 · 0 评论 -
冒泡排序and插入排序
#include<iostream> #include<algorithm> using namespace std; int A[100010]={0}; int B[100010]={0}; int Dubble_sort(int n) { int sum=0; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) {原创 2017-11-05 20:25:55 · 145 阅读 · 0 评论 -
10-排序6 Sort with Swap(0, i)
Sort with Swap(0, i) #include<iostream> #include<algorithm> using namespace std; int A[100010]={0}; int judge(int n) { static int i=0; for(;i<n;i++) { if(A[i]!=...原创 2017-11-05 13:10:38 · 275 阅读 · 0 评论 -
公路村村通
公路村村通 //kruscal 算法 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int per[1010],n,m; struct node//结构体来保存边 { int a,b; int dis; }x[5005]; boo...原创 2017-10-23 15:34:21 · 371 阅读 · 0 评论 -
旅游规划
旅游规划 #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; #define INF 0xfffffff int vis[1010];//标记数组 int n,m,s,d; struct nod...原创 2017-10-23 15:14:14 · 1122 阅读 · 0 评论 -
最小生成树Kruskal
//kruscal 算法 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int per[105],n; struct node//结构体来保存边 { int a,b; int dis; }x[5005]; bool cmp(node a,node b) { retu原创 2017-10-11 21:47:37 · 234 阅读 · 0 评论 -
06-图3 六度空间
六度空间 暴力Floyd O(n^3) #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; #define INF 0xfffffff #define N 10100 int pri[N][N];/...原创 2017-10-11 22:18:37 · 172 阅读 · 0 评论 -
最小生成树Prim
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int inf=0x3f3f3f3f; int map[105][105]; int prim(int n) { int vis[105]={0},dis[105],ans=0; memset(dis,inf,sizeo原创 2017-10-11 21:46:38 · 182 阅读 · 0 评论 -
最短路Floyd、Dijkstra
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; #define INF 0xfffffff int pri[1010][1010];//两个顶点之间距离 int dis[1010];//起点到该点的最短距离 int vis[1010];//标记数组原创 2017-10-11 21:45:47 · 212 阅读 · 0 评论 -
06-图2 Saving James Bond - Easy Version
Saving James Bond - Easy Version #include<stdio.h> #include<stdlib.h> #include<cstdio> #include<iostream> #include<stack> #include<queue> #include<cmath> #原创 2017-10-11 13:32:47 · 168 阅读 · 0 评论 -
列出连通集
列出连通集#include<stdio.h> #include<stdlib.h> #include<cstdio> #include<iostream> #include<stack> #include<queue> #include<string.h> using namespace std; #define MaxVerNum 100queue<int> q;typedef struct GN原创 2017-10-11 12:34:04 · 649 阅读 · 0 评论 -
关键路径
#include<iostream> #include<stack> #define INF 0xfffffff #define N 100 using namespace std; void CriticalPath(int Map[N][N], int n, int m); int TopologicalOrder(int Map[N][N], stack <in...原创 2018-08-08 01:00:01 · 201 阅读 · 0 评论