
数据结构基础
whowhowhocares
一个每天都想回家的亡命之徒。
展开
-
最小生成树之Kruskal
int cmp(const int i, const int j){ return w[i] < w[j];}//间接排序函数int find(int x){ return p[x] == x? x:p[x] = find(p[x]);}//并查集的findint Kruskal(){ int ans = 0; for(int i=0; i<n; i++) p...原创 2018-09-15 20:56:56 · 126 阅读 · 0 评论 -
矩阵链乘uva442(栈)
这道题思路很简单,遇到字母就入栈,遇到‘)’出栈。#include <iostream>#include <stdio.h>#include <stack>using namespace std;struct node{ int le, ri;}alph[26];bool judge(char c){ if(c>='...原创 2018-09-18 21:06:07 · 249 阅读 · 0 评论 -
栈-铁轨(uva514)
首先梳理一下关于栈的知识:头文件:#include<stack>//栈定义方式:stack<int> s;//参数也是数据类型,这是栈的定义方式基本操作:s.empty()//如果栈为空返回true,否则返回false s.size()//返回栈中元素的个数 s.pop()//删除栈顶元素但不返回其值 s.top()//返回栈顶的元素,但不删除...原创 2018-09-14 11:17:19 · 199 阅读 · 0 评论 -
静态链表
破损的键盘(UVa 11988)你有一个破损的键盘。键盘上的所有键都可以正常工作,但有时Home键或者End键会自动按下。你并不知道键盘存在这一问题,而是专心地打稿子,甚至连显示器都没打开。当你打开显示器之后,展现在你面前的是一段悲剧的文本。你的任务是在打开显示器之前计算出这段悲剧文本。输入包含多组数据。每组数据占一行,包含不超过100000个字母、下划线、字符“[”或者“]”。...原创 2018-11-06 20:18:48 · 177 阅读 · 0 评论 -
递归程序的时间复杂度分析
一,递归的四大基本法则:①基准情形基准情形是指那些不需要递归(不需要经过函数调用)之后就能退出的情况。它保证了递归的结束。②不断推进每一次递归之后,都要向着基准情形靠近,并且在靠近的过程中问题的规模越来越小。③设计法则书上说是:假设所有的递归调用都能运行-----“不是特别理解”④合成效益法则不要在不同的递归调用中做重复的工作。 二,实例求解最大公约数-...转载 2018-11-21 09:14:09 · 4334 阅读 · 0 评论