Time of Update: 2018-12-04
/*17-8-09-11-21.20.h -- 第十七章第八題 */#ifndef LAST_H_#define LAST_H_#define ADD_AN_ITEM 1#define SIZE 20/*定義資料類型*//*Name_And_Pet 暴露給使用者的資料類型*/typedef struct name_and_pet{char petname[SIZE] ;/*寵物名*/char petkind[SIZE] ;/*寵物種類*/} Name_And_Kind ;typedef
Time of Update: 2018-12-04
/*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) ;/*返回
Time of Update: 2018-12-04
/*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 *
Time of Update: 2018-12-04
話說這個東西原本以為很快就會寫好,即使是前天才看是看的.實現部分用的就是一個表和size個鏈表.可事實上我寫了不下8小時...寫完了就好啊,不然我會很鬱悶呢. 主要卡殼的地方就是定義資料類型的時候,我反反覆複更改了不下五遍.不想回憶起那些錯誤的行為,我想把我實現的思想說出來來協助自己強化記憶. 分離連結散列表用來解決衝突的問題,一旦發生衝突時就可以把資料放入相應索引指標指向的鏈表中.
Time of Update: 2018-12-04
Tree generate_ideal_binary_search_tree (const int height, int * const assigned_min){Tree tree ;if (height >= 0){tree = (Node *) malloc (sizeof (Node)) ;tree -> left = generate_ideal_binary_search_tree (height - 1, assigned_min) ;tree ->
Time of Update: 2018-12-04
/* AVLTree.c -- AVL樹實現檔案*/#include <stdio.h>#include <stdlib.h>#include "AVLTree.h"/*局部函式宣告*/static int Left_Above_And_Beyond_Right (const Item left, const Item right) ;static int Left_Is_Less_Than_Right (const Item left, const Item
Time of Update: 2018-12-04
學樹第四天,第一課伸展樹.寫了8小時,好睏啊.感覺真好.寫完自己又讀了一遍,記下了. 貼出來,還希望有人願意跟我交流./* splay_tree.c -- 伸展樹實現檔案*/#include <stdio.h>#include <stdlib.h>#include "splay_tree.h"/*局部資料類型定義*/typedef Position Stack_Item ;typedef struct stack_node{Stack_Item item
Time of Update: 2018-12-04
/*open_addressing_hash.c -- 開放定址散列表實現檔案*/#include <stdio.h>#include <stdlib.h>#include "open_addressing_hash.h"/*局部資料類型定義*/struct apple/*我實在想不出別的名字了*/{int full ;int value ;} ;/*局部函數定義*/int Get_Prime_Value (const int size) ;int
Time of Update: 2018-12-04
/*open_addressing_hash_with_hashing_again.c -- 開放定址散列表線性探測法可再散列實現檔案*/#include <stdio.h>#include <stdlib.h>#include "open_addressing_hash_with_hashing_again.h"/*局部函式宣告*/static int Get_Prime_Value (const int size) ;static int Is_A_Prime
Time of Update: 2018-12-04
/*Uiversal_queue.c -- 隊列實現檔案*/#include "Uiversal_queue.h"/*Proclaim local functions*/static Node * makeNode (const Item * const pi) ;/*Define interface functions*/Bool Initialize_Q (Queue * const pq){*pq = (struct queue *) malloc (sizeof (struct
Time of Update: 2018-12-04
排序的穩定性,是指排序前後,相同元素的位置先後關係是否改變.穩定排序,是位置先後關係不變.不穩定排序,是先後位置關係改變,當然,也存在不改變的可能.更說明了他的不穩定.可笑吧?哈哈... <<AtA>>的一道課後習題,問了幾種常見排序的穩定性問題,以及如何將不穩定排序改為穩定排序.為了探尋這個問題,我決定動手寫出這些排序.這是昨天的事,昨天開始寫的.到現在寫完了,中途幹了許多別的事情. 還是第一次,默寫這些個排序.收穫很多,可以說,最起碼克服了默寫這些排序的恐懼.
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
/*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
/*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
....最近的作品,實在是少得可憐. 不過還好,總比沒有得要好. 這個東西,是分治演算法的例子,是按照思路實現起來的,總體說來,還算不錯.希望接下來的,能實現得更自然./*10-16-11-01-22-23.17.c -- 第十章第十六題*//*有問題存在,偶爾出現段錯誤.偶爾出現計算錯誤.這道習題耽誤太久了,先不去研究了. -- 11-01-27-21.49*/#include <stdio.h>#include <stdlib.h>#include
Time of Update: 2018-12-04
老樣子,跟著演算法導論走.//graphRepresentAsAdjacentList.h -- graph header file.//2011-09-02-19.38 -- 2011-09-02-21.47//Purpose://Define a class "graphRepresentAsAdjacentList".//Declare methods of the class, and define element member.#include <iostream>#
Time of Update: 2018-12-04
為使用malloc分配空間時報錯,錯誤碼如下:malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) – __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >=
Time of Update: 2018-12-04
規律:1). 每一個成員的地址能夠被它本身位元組數整除; 2). 最後總的位元組數必須能夠被最大位元組數的成員整除; 3). 一般可以以地址0為起始地址來考慮。否則的話就會產生補位。例如:typedef struct test {char a; //2bytesint b; //1byteschar d[21]; //20bytesdouble f;};結果sizeof(test)=4。實際上,1
Time of Update: 2018-12-04
orz下死月先。然後表示離散神馬的忘光了。一筆畫神馬的奇數度的點只有<=2個啊然後map<node,int>還有一點就是map是要鍵類型必須定義<操作符,而且該操作符能夠正確的工作,實際上map底層有紅/黑樹狀結構實現。根據二叉樹的特點重構<(感謝芒果==)#include<iostream>#include<cstdio>#include<cstring>#include<map>using namespace