Time of Update: 2018-12-04
//block.h -- 類比整合電路板標頭檔#include <iostream>#include "intervalTree.h"namespace block{using tree :: Item ;using tree :: Node ;using tree :: IntervalTree ;typedef struct block{Item xMin, xMax, yMin, yMax ;int number ;} Block ;typedef struct
Time of Update: 2018-12-04
/*adjacenty_list.c -- 鄰接表實現檔案*/#include <stdio.h>#include <stdlib.h>#include "adjacenty_list.h"/*局部函式宣告*/Vertex * Make_Vertex (const Name vertex) ;/*介面函數定義*/int CreateAdjacent_List (Adjacent_List * const padj, const int capacity){int
Time of Update: 2018-12-04
本來在寫kruskal演算法,覺得不要讓自己太透支了,畢竟年輕的本錢很容易揮霍光掉.昨天我就沒脫衣服睡了一夜. 還要5.30起來,而且一幹就是一天呢.最近鬧心工作的事,寫了會代碼,才感覺好多了.不然腦袋裡老是這些,煩死了. 我在忍耐,一直在忍耐.就是為了,我的忍耐能夠換來周圍環境的默默"支援",也就是,沒人制止我. 也許是我的忍耐不夠,也許是我處事輕浮,總之,境況不好.無論如何,親人我要顧及,自己也要顧及.實在到萬不得已的時候,我還是會選擇為了代碼放棄一些.這才是我的未來.
Time of Update: 2018-12-04
看<<AtA>>,一道題.尾遞迴,迴圈換遞迴.思想很好,用處很大. 沒有華麗的效能提高,只是展現尾遞迴的思想.確實,快速排序我還並未搞懂.先繼續進行吧. 貼~/*2011-04-20-21.32.c -- 快速排序尾遞迴版*/#include <stdio.h>#include <stdlib.h>#define SIZE (22)int main (void) ;void printArray (const int * const
Time of Update: 2018-12-04
/*Stack_ADT.h -- 棧模型標頭檔*//*資料類型定義*/typedef char Name ;typedef struct stack_node{Name name ;struct stack_node * next ;} Stack_Node ;typedef Stack_Node * Stack ;/*介面函式宣告*//*操作:初始化一個棧*//*操作前:pstack 指向一個棧*//*操作後:如果記憶體配置成功, 該棧被初始化並被置為空白, 返回1;
Time of Update: 2018-12-04
/*9-18(b)-12-19-00.49.c -- 第九章第十八題*/#include <stdio.h>#include <stdlib.h>#include "binary_heap_for_kruskal.h"#include "disjiont_set.h"#define SIZE (10)int main (void) ;void kruskal (const Adjacenty_List * const padj, const Hash_Table *
Time of Update: 2018-12-04
/*new_adjacenty_list.h -- 鄰接表標頭檔*/#include <stdarg.h>#include "hash.h"#define INFINITY (~(1 << 31))#define NEGATIVEINFINITY (-INFINITY - 1)/*資料類型定義*/typedef struct adjoin_to_vertex{int hash_value ;int cvw ;struct adjoin_to_vertex * next ;
Time of Update: 2018-12-04
因為眼前有個常式要使用鏈表,索性寫了一個鏈表,純潔的鏈表其實寫得很少.寫了一次,感覺又是受益匪淺./*linked_list.h -- 鏈表標頭檔*//*資料類型定義*/typedef int Linked_List_Item ;typedef struct linked_list_node{Linked_List_Item v ;Linked_List_Item w ;struct linked_list_node * next ;} Linked_List_Node ;typedef
Time of Update: 2018-12-04
/*binary_heap_for_kruskal.h -- 二元堆積標頭檔*/#include "new_adjacenty_list.h"/*資料類型定義*/typedef struct edge{int v_hash_value ;int w_hash_value ;int weight ;} Edge ;typedef struct binary_heap{Edge * heap ;int capacity ;int current ;} * Binary_Heap ;/*介面函式宣告*
Time of Update: 2018-12-04
/*new_adjacenty_list.c -- 鄰接表實現檔案*/#include <stdio.h>#include <stdlib.h>#include "new_adjacenty_list.h"/*局部函式宣告*/static Adjoin_To_Vertex * Make_Adjoin_To_Vertex (const Hash_Table * const pht, const Name name, const int cvw)
Time of Update: 2018-12-04
/*linked_list.c -- 鏈表實現檔案*/#include <stdio.h>#include <stdlib.h>#include "linked_list.h"/*局部函式宣告*/static Linked_List_Node * Make_Node (const Linked_List_Item li1, const Linked_List_Item li2) ;/*介面函數定義*/int Initialize_L (List * const pli){
Time of Update: 2018-12-04
看第八章第二天,一個並不難的實現,我寫到現在.呵呵. 主要說來,這個東西,就是表示出一些彼此不相交的集合,能夠合并已知集合,能夠確定某元素所在的集合.編程的代價較低.分析的問題比較讓我頭疼. 最近事情比較多,一件接著一件.雖然只有兩件而已.總而言之,人要走正路.不要有雜念,有雜念是要有代價的.我所要做的,就是堅持學習電腦,早日擺脫這該死的工作. 雖然明早起來就不會這麼豁達了,誰知道呢,這確實是鍛煉,人不經事,不會成長.加油吧! 上代碼,經過斟酌的代碼呢.呵呵./*8-3-11-29-
Time of Update: 2018-12-04
不同於路徑壓縮,偏路徑壓縮使得訪問路徑上的節點整體向上移動.很好./*8-14-12-03-00.30.c -- 第八章第十四題*/SetType Find (DisjiontSet gather, const Item item) ;SetType Find (DisjiontSet gather, const Item item){Item temp, i, j ;if (gather[item] < 0)return item ;i = gather[item] ;while (
Time of Update: 2018-12-04
/*9-10(b)-12-13-20.26.c -- 第九章第十題(b)*/#include <stdio.h>#include <stdlib.h>#include "binary_heap.h"int main (void) ;int new_dijkstra (const Adjacenty_List * padj, const Hash_Table * const pht, const int start) ;int main
Time of Update: 2018-12-04
起初選擇使用ADT的操作來實現分配儲存空間.後來發現.這樣做,問題很多,以至於分析了一會沒有分析出什麼結果.索性直奔問題了,我的思想是好的,我承認. 上代碼./*DisjiontADT.c -- 不相交集合實現檔案*/#include <stdio.h>#include <stdlib.h>#include "DisjiontADT.h"/*介面函數定義*/void InitializeAsHeight (DisjiontSet gather, const int
Time of Update: 2018-12-04
確定一棵樹流出的最大流,即樹葉可以流入的最大流量的和,也就是整棵樹流出的流量. 樹中每一個非分葉節點的流出流量 = min (流入流量, 路徑容量). 知道了這些,自然的方式使用遞迴,就可求解出該問題. 很遺憾,我是在看了答案之後才寫出的這些./*9-12-12-15-15.53.c -- 第九章第十二題*//*Pseudocode*/FlowType FindMaxFlow (const Tree T, FlowType IncomingFlow) ;FlowType
Time of Update: 2018-12-04
/*binary_heap_for_kruskal.c -- 二元堆積實現檔案*/#include <stdio.h>#include <stdlib.h>#include "binary_heap_for_kruskal.h"/*局部函式宣告*/static int Percolate_Up (const Binary_Heap * const pbh, const int index) ;static int Percolate_Down (const Binary_
Time of Update: 2018-12-04
/*disjiont_set.c -- 不相交集合實現檔案*/#include <stdio.h>#include <stdlib.h>#include "disjiont_set.h"/*介面函數定義*/int Initialize_D (Disjiont d, const int capacity){int i ;if (capacity <= 0)return 0 ;d[0] = capacity ;for (i = 1 ; i <= capacity;
Time of Update: 2018-12-04
/*disjiont_set.h -- 不相交集合ADT標頭檔*/#define HEIGHT (0)#define OOS (1 << 31)/*資料類型定義*/typedef int SetItem ;typedef SetItem SetType ;typedef SetItem * Disjiont ;/*介面函式宣告*//*操作:按高度建立並初始化一個不相交集合*//*操作前:d 是一個不相交集合變數, capacity 指示該集合的大小*//*操作後:如果
Time of Update: 2018-12-04
/*adjacenty_list.h -- 鄰接表標頭檔*/#include <stdarg.h>/*資料類型定義*/typedef char Name ;typedef struct vertex{Name name ;struct vertex * next ;} Vertex ;typedef struct adjacency_list{Vertex * list ;int * indegree ;int capacity ;} * Adjacent_List