好久不寫代碼,手生了許多. 這個問題,是書上的一道習題,從這段代碼開始,意味著這一章的瘋狂編碼開始了... 最近有些懈怠,有些雜念... 娘的,停薪留職沒了!悲劇啊!我想出了別的辦法,我會去做.可一定要成啊! 好吧,貼出My Code./*10-2-11-01-09-21.29.c -- 第十章第二題*/#include <stdio.h>#include <stdlib.h>#include <time.h>#define SIZE
/*binary_heap.h -- 二元堆積標頭檔*/#include "new_adjacenty_list.h"/*資料類型定義*/typedef Vertex * Heap_Item ;typedef struct binary_heap{Heap_Item * heap ;int capacity ;int current ;} * Binary_Heap ;/*介面函式宣告*//*操作:建立並初始化一個二元堆積*//*操作前:pbh 指向一個二元堆積, capacity
/*extendible_hashing.c -- 可擴散列實現檔案*/#include <stdio.h>#include <stdlib.h>#include "extendible_hashing.h"/*局部函式宣告*/static char pow_base_two (const int power) ;/*介面函數定義*/int Hash (const Item * const pitem, const char constant){return
/*binary_heap.h -- 二元堆積標頭檔*/#define MINDATA -32768/*資料類型定義*/typedef int Item ;typedef struct heap{Item * array ;int capacity ;/*容量*/int size ;/*當前資料數量*/} * Heap ;/*介面函式宣告*//*操作:建立並初始化一個二元堆積*//*操作前:pheap 指向一個二元堆積, capacity
/*binary_heap.c -- 二元堆積實現檔案*/#include <stdio.h>#include <stdlib.h>#include "binary_heap.h"/*局部函式宣告*//*返回 item 在 position 位置處上濾後應該出現堆中的位置索引*/static int Percolate_Up (const Heap * const pheap, const Item item, const int position) ;/*返回
並未深入研究這個,只是對已有代碼進行了理解與擴充.我已經成了奴隸,時間長沒有代碼出現,就會鬱悶得要命.出了這個,能緩解下.給自己的壓力太大了./*AATree.h -- AA樹標頭檔*/#include <stdio.h>#include <stdlib.h>/*明顯常量定義*/#define FALSE (0)#define TRUE (1)/*資料類型定義*/typedef int BOOL ;typedef int Item ;typedef struct
/*AATree.c -- AA樹實現檔案*/#include "AATree.h"/*全域變數聲明*/static Node * NullNode = NULL ;/*局部函式宣告*/static Node * singleRotateWithLeft (Node * const pn) ;static Node * singleRotateWithRight (Node * const pn) ;static Node * skew (Node * pn) ;static Node *
這東西,有隨機化演算法的影子.使得每個結點以 priority 值保持堆序,繼而實現對樹高度的控制.想法很好,實現起來也很簡單./*treapTree.h -- treap樹標頭檔*/#include <stdio.h>#include <stdlib.h>#include <time.h>#define INFINITY (~(1 << 31))typedef int Item ;typedef struct node{Item item ;
/*PairingHeap.c -- 配對堆實現檔案*/#include "PairingHeap.h"/*全域變數聲明*/static Node * NullNode = NULL ;/*局部函式宣告*/static Node * compareAndLink_P (Node * const first, Node * const second) ;static Node * makeNode_P (const Item item) ;static Node *
/*PriorityQueue.c -- 最小堆實現檔案*/#include "PriorityQueue.h"/*局部函式宣告*/static BOOL percolateUp_P (PriorityNode * const heap, const int position, const int size) ;static BOOL percolateDown_P (PriorityNode * const heap, const int position, const int size) ;
我的天啊!如果再沒有代碼出來,我真的要瘋掉了.!!! 還好,經曆了這麼久,終於有代碼出來了. 每次寫的時候,我都告訴自己.我一定要寫完這個之後寫點豪言壯語出來,....結果,每次都沒有.基本上吧...寫完了,覺得,很平淡,過程,已經享受完了... 較以往,代碼風格有了改變,嘗試使用了標頭檔,修改了一處隊列的從很久以前的錯誤認識,複習了希爾排序,感悟些選擇資料結構.
....最近的作品,實在是少得可憐. 不過還好,總比沒有得要好. 這個東西,是分治演算法的例子,是按照思路實現起來的,總體說來,還算不錯.希望接下來的,能實現得更自然./*10-16-11-01-22-23.17.c -- 第十章第十六題*//*有問題存在,偶爾出現段錯誤.偶爾出現計算錯誤.這道習題耽誤太久了,先不去研究了. -- 11-01-27-21.49*/#include <stdio.h>#include <stdlib.h>#include
/*10-5-11-01-11-21.47.c-- 第十章第五題*/#include "Uiversal_queue.h"typedef struct data{int time ;int count ;} Data ;int main (void) ;int showMenuAndGetChoice (void) ;void eatLine (void) ;int getInput (int * const input, const int size) ;Data nextFit
最近的代碼產量好低,讓我很有罪惡感!到家老是想睡覺,感覺很累.也確實,最近確實很累.也可能是因為,自己老是這麼認為,才會去累的吧... 需要調整調整,各種調整.畢竟,想墮落是很容易的. 這段代碼,寫了3天多.畢竟,動態規劃給我帶來的陰影還是很大的.最近研究演算法,搞得自信下去了.還好了,這段代碼,及時出現了. 對於隨機函數,我的使用,很爛,希望以後有改進. 帖!/*SkipList.h -- 跳躍表標頭檔*/#include <stdio.h>#include
半天時間,寫了個d-堆的實現.還不錯.加深了對優先隊列的理解.貼代碼./*d-heap.h -- d-堆標頭檔*/#define MINDATA -32678/*資料類型定義*/typedef int Item ;typedef struct heap{Item * array ;int capacity ;int size ;int d ;} * Heap ;/*介面函式宣告*//*操作:建立並初始化一個d-堆*//*操作前:pheap 指向一個d-堆, capacity
/*2dTree.c -- 2-d樹實現檔案*/#include "2dTree.h"/*局部函式宣告*//*隊列部分*/static QueueNode * makeNode_Q (Node * const pn, const int index) ;/*2-d樹部分*/static Node * makeNode_T (const Item * const pi) ;static void release_T (Node * const pn)
對於這個,想說的是.關於 NullNode 結點.在調用Release ()釋放記憶體之後,要將其恢複為NULL,以便下次的連續使用.自己想到的,很不錯./*treap.c -- treap樹實現檔案*/#include "treapTree.h"/*全域變數聲明定義*/static Node * NullNode = NULL ;/*局部函式宣告*/static Node * singleRotateWithLeft (Node * const pn) ;static Node *
這個東西, 書上沒有給出時間分析.我自己也思考了下,想給出很上的界是能的,但是確切的時間,很難給出,這東西完全是根據操作序列來產生各種高度,所以很難給出具體的界. Insert () O (1). DecreaseKey () O (1). DeleteMin () ,就不知道了. 好吧,貼代碼了./*PairingHeap.h -- 配對堆標頭檔*/#include <stdio.h>#include <stdlib.h>/*明顯常量定義*/#define
這個東西,從研究到寫完,用了18小時.是我太笨了嗎?不過還好,總算是寫出來了. 收拾收拾,準備去那個城市考察一下.但願帶回真實的資料供我參考./*9-32(a)-12-29-21.48.c -- 第九章第三十二題*/#include <stdio.h>#include <stdlib.h>#include "new_adjacenty_list.h"#include "rqueue.h"#define SIZE (12)int g_last_path =
2-d樹,昨天寫的.今天本想來好好玩會球,不想玩了一小會就散夥了.於是來上會網. 這個東西,支援二維的範圍尋找,十分有用.關於最佳化的部分,我並不承認.我覺得我所知的那種最佳化方式開銷太大,而且實現十分困難,於是沒有去實現.寫的這套ADT很不錯,關於範圍尋找非遞迴的實現,我想到了層序遍曆,這真是一個好主意,我都為自己高興,覺得自己的想法很到位.事實證明,問題也確實依次解決的,很不錯,很不錯.呵呵.