原创 圖的連通性問題,圖轉換爲樹--DNF與BNF生成樹

使用深度優先搜索和廣度優先搜索的方法創建生成樹 //DNF生成樹 #include <iostream> using namespace std; const int max_vex=30; struct linknode//表節點類型

原创 字符串的數組表示

一:求字符串的長度 頭文件:#include <string.h> strlen()函數用來計算字符串的長度,其原型爲: unsigned int strlen (char *s); 【參數說明】s爲指定的字符串。 strlen()用來

原创 交換排序模板

//交換排序之冒泡排序 #include <iostream> using namespace std; void bubblesort(int R[],int n) { bool exchange; int i,j,temp; f

原创 時間管理實踐與感悟

    如何脫穎而出,我覺得最有效的方法就是高效度過自己的每個時。這裏是我選擇了小強升職記中提到的集中時間管理方法並且結合自己學生的身份做出一些改動,使之適合實際情況。比如作爲學生,我沒有那麼多突發的瑣事,更多的是長期的對某一系列問題長時

原创 並查集問題

轉自http://m.blog.csdn.net/article/details?id=7724401 來看一個實例,杭電1232暢通工程 首先在地圖上給你若干個城鎮,這些城鎮都可以看作點,然後告訴你哪些對城鎮之間是有道路直接相連

原创 POJ2253 Frogger(Floyd)

題目描述:青蛙A要找青蛙B,路徑任選,求所有可能路徑中跳的最遠的一步,它們之中的最小距離值。           輸入要求,第一行爲石頭數,二三行爲起點和終點位置,n-2行爲其他石頭結點。第一行爲0使結束。 問題分析:需要知道任意兩節點間

原创 選擇排序之堆排序

//選擇排序之堆排序 //這裏排序數組要從下標1開始 #include <iostream> using namespace std; void sift(int R[],int low,int hight) { int i=low,j

原创 bellman-ford

#include <iostream> #include <math.h> using namespace std; int s,edgenum,nodenum; const int max_edgenum=100; const int

原创 內排序之插入排序

//插入排序之直接插入排序 #include <iostream> using namespace std; int R[100]; int n;//所需排列的序列元素的個數 void main(int R[],int n) { int

原创 flord(傳遞閉包)

傳遞指對於一個節點i,如果j能到i,i能到k,那麼j就能到k。 傳遞閉包,就是把圖中所有滿足這樣傳遞性的節點都弄出來,計算完成後,我們也就知道任意兩個節點之間是否相連。 break 指跳出一層循環;continue 結束本次循環,跳過本次

原创 最小生成樹問題學習總結

kruskal算法思想: 對圖中的所有邊按升序排列,依次檢驗圖中的權值最小的邊,若此邊加入後不形成迴路,則選取此邊加入生成樹,直至選取n-1條邊。 算法實現: 對圖的信息中所需數據元素只有邊的兩端頂點及權值,選取的生成樹的邊存儲結構與之相

原创 圖的鄰接矩陣存儲

//圖的鄰接矩陣表示法 /*#include <iostream> using namespace std; struct graph { char vexs[100];//圖中頂點的數組 int arc[100][100];//圖的

原创 並查集

題目鏈接:http://poj.org/problem?id=1308 主要有四個問題。待續。。。。。(有時間補上) #include <iostream> #include <string> using namespace std;

原创 10揹包例題

一個院級的acm小選拔賽,遇到的幾個簡單題目,這裏做下總結     越野跑問題 #include <iostream> using namespace std; int main() { int M,T,U,F,D,sum=0; c

原创 kmp算法--通俗易懂

         今天花了好幾個小時學習這個算法,擔心之後忘記,所以在這裏做些總結。也方便其它人學習借鑑。          學習理解的過程中也看了很多帖子,但感覺說的都不是特別清楚,也對照了課本,但是大量的推理證明並不到好理解,沒有與程