PAT考前看看
华师少女的梦
血肉苦弱,机械飞升!
展开
-
二叉树的非递归遍历
/* 你的代码将被嵌在这里 */void InorderTraversal( BinTree BT ){ Stack S = CreateStack(); BinTree T = BT; while(T||!IsEmpty(S)) { while(T){ Push(S,T); T = T->Left; } T = Pop(S); printf(" %c",T->Data); T = T->Right; }}void PreorderTr.原创 2021-08-16 18:41:19 · 60 阅读 · 0 评论 -
7-4 Ambulance Dispatch (30分) 浙江大学2019年考研复试上机题
#include<cstdio>#include<vector>#include<algorithm>#include<string>using namespace std;const int maxn = 1050;const int inf = 1000000000;int Ns,Na,K,M;int weight[maxn];int G[maxn][maxn];int S[maxn][maxn];//边权为1,解决街道问题 int.原创 2020-05-29 23:33:29 · 964 阅读 · 5 评论 -
Dijkstra+堆优化+邻接表
在PAT试题中涉及到10000个数据左右的最短路问题时,对迪杰斯特拉算法用最小堆进行优化可以在很快时间内解决。如果不采用迪杰斯特拉算法和邻接表表示则很有可能超时。下面展示了用c++中stl的优先级队列对迪杰斯特拉算法的优化,有了它加上DFS就可以基本解决在PAT中遇到的最短路问题(大部分最短路问题顶点不超过1000,但有时候出现10000时用下面的这个模板也能从容面对。)struct Node{ int v, dis;//v代表顶点,dis代表边权 };vector<Node> Ad原创 2020-05-18 17:21:35 · 357 阅读 · 0 评论 -
1052 Linked List Sorting (25分)(用冒泡排序法对链表排序)
陈姥姥提过可以用冒泡法对链表进行排序,这个题就试着用冒泡排序法做了一下。很显然算法本身是可以的,但是冒泡排序是一个n平方的算法所以实际上大数据测试是过不了的。要想拿满分就直接用stl做。#include<cstdio>struct Node{ int key; int next; bool flag; Node(){ flag = false; }}node[...原创 2020-04-13 16:47:00 · 129 阅读 · 0 评论 -
1051 Pop Sequence (25分)(栈混洗)
通过模拟的方式来处理。设置A队列用来存放题目数据,B栈用来放1-n,S栈作为中转栈。通过分析,不难发现当A栈不为空并且(S栈为空或者S的栈顶元素值小于A队列第一个元素的值)并且S栈不满时:我们让B栈弹出一个元素压入S栈中。当上述循环跳出时有以下4种可能:(1)A队列为空,说明YES(2)S的栈顶元素值等于A队列首元素值,则S弹出栈顶,A队首元素出列(3)S的...原创 2020-04-09 16:53:01 · 220 阅读 · 0 评论