数据结构
punchline_skr
会飞的代码
展开
-
基于二叉链表的二叉树最长路径的求解
此题需要借助栈来实现。不过栈中元素是二叉树结点的指针。两个栈,一个辅助栈,一个用来保留当前最长路径中的结点的栈。可见注释……当然,也可以递归求解,如下:#include<bits/stdc++.h>//递归求解using namespace std;const int maxn=1000;typedef struct node{ char data; struc...原创 2018-04-25 23:31:40 · 1586 阅读 · 0 评论 -
基于二叉链表的二叉树叶子结点到根结点的路径的求解
树的定义是递归的,操作自然也离不开递归,关键还是递归求解#include<bits/stdc++.h>using namespace std;typedef struct node{ char data; struct node *lc,*rc;} node,*link;int i,flag;char path[1000];void creat(link ...原创 2018-04-28 23:07:41 · 1675 阅读 · 0 评论 -
无向图的DFS/BFS遍历
#include<bits/stdc++.h>using namespace std;int vis[25],flag=1;queue<int>s;typedef struct node //边结点{ int a; //该边所指向的顶点的位置 struct node *next; //指向下一条边的...原创 2018-04-30 00:11:57 · 1743 阅读 · 0 评论 -
表达式树的创建与输出
#include<bits/stdc++.h>using namespace std;string s;typedef struct node{ int data; struct node *lc,*rc;} node,*link;void creat(link &L){ cin>>s; if(s[0]=='#') ...原创 2018-06-03 00:42:07 · 3897 阅读 · 2 评论 -
表达式树的值
表达式树的创建与输出在上一篇中,下面就利用表达式树来递归计算多项式#include<bits/stdc++.h>using namespace std;string s;typedef struct node{ int data; struct node *lc,*rc;} node,*link;void creat(link &L){ c...原创 2018-06-04 11:11:45 · 1304 阅读 · 1 评论 -
弗洛伊德最短路径算法
#include<bits/stdc++.h>using namespace std;const int maxint=1e9;int n;int G[55][55],D[55][55];void shortpath(){ for(int k=0; k<n; k++) for(int i=0; i<n; i++) ...原创 2018-06-05 17:56:06 · 382 阅读 · 0 评论 -
huffman编码
#include<bits/stdc++.h>using namespace std;typedef struct{ int weight; int parent,left,right;}HTNode,*HuffmanTree;typedef char **HuffmanCode;const int Max=0x3f3f3f;void Select(Huf...原创 2018-05-30 16:50:56 · 439 阅读 · 0 评论 -
快速排序
#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int a[maxn],n;void f(int *a,int low,int high){ int i, j; if(low>=high) return; //swap(a[low], a...原创 2018-05-31 15:47:45 · 305 阅读 · 0 评论 -
堆排序
利用大根堆实现升序序列#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int a[maxn],n;void just_heap(int s,int m)//【s+1,m】已经是堆,将【s,m】调整为以a[s]为根的大根堆{ int key=a[s]; for(int i=2*s;i...原创 2018-06-16 17:07:23 · 151 阅读 · 0 评论 -
24点游戏(Ⅰ)
激动hhhhh#include<bits/stdc++.h>using namespace std;string s;int flag,f,k;stack<int>q;int a[105];typedef struct nod{ int data; int fenmu;}nod;typedef struct node{ int d...原创 2018-07-05 22:33:51 · 889 阅读 · 0 评论 -
中缀表达式转后缀表达式
#include<bits/stdc++.h>using namespace std;typedef struct node{ char a; struct node *next;} node,*link;void Push(link &L,char ch){ node *t=new node; t->next=NULL; ...原创 2018-07-05 22:32:51 · 155 阅读 · 0 评论 -
Genealogical tree(poj 2367)
拓扑排序模板题……#include<bits/stdc++.h>using namespace std;const int maxn=105;int in[maxn],v[maxn][maxn],path[maxn],n,cnt;queue<int>qq;void tuopu(){ while(!qq.empty()) { ...原创 2018-05-10 17:42:27 · 128 阅读 · 0 评论 -
二叉搜索树(hdu 3791)
特别基础的题……#include<bits/stdc++.h>using namespace std;int cnt;char a[15],b[15],c[15];typedef struct tree{ int num; tree *lc; tree *rc;} tree;tree *root;tree *Insert(tree *s...原创 2018-05-06 20:46:33 · 286 阅读 · 0 评论 -
二叉排序树(BST)
基础详细请点击#include<bits/stdc++.h>using namespace std;int arr[] = { 17,12,19,10,15,18,25,8,11,13,16,22};typedef struct bst{ int data; struct bst *lc,*rc;} bst,*BST;BST Search(BST ro...原创 2018-05-09 23:03:12 · 193 阅读 · 0 评论 -
根据先序和中序构建二叉树
#include<bits/stdc++.h>using namespace std;typedef struct node{ char data; struct node *lc,*rc;}node,*link;char pre[1005],in[1005];link creat(char *pre,char *in,int p1,int p2,int i...原创 2018-04-25 22:22:19 · 1029 阅读 · 0 评论 -
玩转二叉树
L2-011玩转二叉树(25分)给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转...原创 2018-04-20 16:38:49 · 1262 阅读 · 0 评论 -
基于二叉链表的二叉树结点个数的统计
#include<bits/stdc++.h>using namespace std;typedef struct node{ char data; struct node *lc,*rc;} node,*link;int i,flag,a,b,c;void creat(link &L){ char ch; scanf("%c",&...原创 2018-04-20 16:36:57 · 1909 阅读 · 2 评论 -
双栈的基本操作
双栈:两栈共享向量空间,将两栈栈底设在向量两端,初始时,左栈顶指针为-1,右栈顶为n。栈顶指针相邻时为栈满,两栈顶相向增长。#include<bits/stdc++.h>using namespace std;typedef struct node{ int top[2]; int bot[2]; int *V; int m;}node;voi...原创 2018-04-02 22:33:44 · 3936 阅读 · 0 评论 -
一元多项式加法
除了用链表还可以用STL中的map,^-^#include<bits/stdc++.h>using namespace std;struct node{ int x; int y;}stu[105];map<int,int>s;void f(string x){ int flag=1,t=0,j=1,m,n; for(int i...原创 2018-04-04 22:48:19 · 520 阅读 · 0 评论 -
表达式求值
1792: 算法3-4:表达式求值时间限制:1 Sec内存限制:32 MB提交:34解决:22[提交][状态][讨论版]题目描述算数四则运算的规则是1)先乘除,后加减;2)从左算到右;3)先括号内,后括号外。由此,算式4+2*3-10/5的计算顺序为4+2*3-10/5=4+6-10/5=4+6-2=8。给定一个以“#”作为结束符的算式,求出算式的结果。...原创 2018-04-06 12:37:32 · 9029 阅读 · 5 评论 -
基于循环链表的队列的基本操作
注意不设头指针,注意细节!!!#include<bits/stdc++.h>using namespace std;typedef struct node{ int a; struct node *next;}node,*link;typedef struct{ link rear;}Link;void Push(Link &Q,int ...原创 2018-04-06 21:22:43 · 3298 阅读 · 0 评论 -
中缀表达式转化为后缀表达式
写得比较冗长,不过比较详细、、、、#include<bits/stdc++.h>using namespace std;typedef struct node{ char a; struct node *next;}node,*link;void Push(link &L,char ch){ node *t=new node; t-&...原创 2018-04-06 21:34:00 · 212 阅读 · 0 评论 -
基于两端操作的循环队列的实现
判断队列空:front==rear。判断队列满:(rear+1)%m=front#include<bits/stdc++.h>using namespace std;typedef struct{ int *elem; int f; int r;}node;void Push(node &L,int n){ int m,t=n; ...原创 2018-04-06 22:42:15 · 1064 阅读 · 0 评论 -
基于二叉链表的二叉树的遍历
#include<bits/stdc++.h>using namespace std;typedef struct node{ char data; struct node *lc,*rc;} node,*link;int i,flag;void creat(link &L){ char ch; scanf("%c",&ch...原创 2018-04-19 23:01:22 · 1087 阅读 · 0 评论 -
基于二叉链表的二叉树高度的计算
#include<bits/stdc++.h>using namespace std;typedef struct node{ char data; struct node *lc,*rc;} node,*link;int i,flag;void creat(link &L){ char ch; scanf("%c",&ch...原创 2018-04-19 23:13:31 · 2890 阅读 · 0 评论 -
基于二叉链表的树结构相等的判断
#include<bits/stdc++.h>using namespace std;typedef struct node{ char data; struct node *lc,*rc;} node,*link;int i,flag,le,ri;void creat(link &L){ char ch; scanf("%c",&...原创 2018-04-24 14:05:50 · 945 阅读 · 0 评论 -
数据结构课程设计-单词检查
问题 I: 单词检查(Ⅰ)- 顺序表实现时间限制: 1 Sec 内存限制: 128 MB提交: 2227 解决: 736[提交][状态][讨论版]题目描述许多应用程序,如字处理软件,邮件客户端等,都包含了单词检查特性。单词检查是根据字典,找出输入文本中拼错的单词,我们认为凡是不出现在字典中的单词都是错误单词。不仅如此,一些检查程序还能给出类似拼错单词的修改建议单词。 例如字典由下面几...原创 2019-07-02 20:44:45 · 7007 阅读 · 16 评论