歸併排序遞迴實現C語言

/*7-13-11-20-22.33.c -- 第七章第十三題*/#include <stdio.h>#include <stdlib.h>#define SIZE 8int main (void) ;void print_array (const int * const array, const int size) ;void merge_sort (int * const array, const int size) ;void merge_sort_entity (

d-堆實現檔案C語言

/*d-heap.c -- d-堆實現檔案*/#include <stdio.h>#include <stdlib.h>#include "d-heap.h"/*局部函式宣告*/static int Percolate_Up (const Heap * const pheap, const Item item, const int position) ;static int Percolate_Down (const Heap * const pheap, const

左式堆(不完全操作)標頭檔C語言

  一晃又好幾天沒有更新部落格,很是鬱悶啊.這個左式堆,不想繼續寫下去了,寫得很吃力,於是先告一段落吧.畢竟學習資料結構不是一朝一夕的事情.今後會回頭來看的.貼代碼./*lefttist_heap.h -- 左式堆標頭檔*/#define INSERT(h, x) h = Insert (h, x)/*宏和參數之間不能有空格*/#define DELETEMIN(h) (h = DeleteMin (h))/*資料類型定義*/typedef int Item ;typedef struct

左式堆(不完全操作)實現檔案C語言

/*lefttist_heap.c -- 左式堆實現檔案*/#include <stdio.h>#include <stdlib.h>#include "lefttist_heap.h"/*局部ADT定義*/typedef Node Item2 ;typedef struct node2{Item2 item2 ;struct node2 * next ;} Node2 ;typedef struct queue{Node2 * front ;Node2 * rear ;

斜堆標頭檔C語言

  雖然今天距昨天只有一天, 我還是成長了好多.對於昨天不懂的問題,今天搞清楚了大半.總體來說,總結起來,...都寫到代碼裡了.還要去看數學,就不多寫了.呵呵.總之,明天會更好./*skew-heap.h -- 斜堆標頭檔*/#define INSERT(heap, item) (heap = Insert (heap, item))#define DELETEMIN(heap, pnode) (heap = DeleteMin (heap, pnode))#define BUILD(heap,

斜堆實現檔案C語言

  這個斜堆沒有XX檢測.也正因為我不明白書上說的是什麼意思,才沒有寫出來.不過,那似乎是個理論上100%可以避免的檢測.或者,至少來說,一些事實驗證了代碼的正確性. 希望高手指正!/*skew-heap.c -- 斜堆實現檔案*/#include <stdio.h>#include <stdlib.h>#include "skew-heap.h"/*局部ADT聲明*//*Item1定義為指標類型在釋放原空間後會造成非法的儲存空間引用*//*得到的經驗教訓是:

二項隊列標頭檔C語言

/*binomial-queue.h -- 二項隊列標頭檔*//*標頭檔載入放在標頭檔是個好主意*/#include <stdio.h>#include <stdlib.h>#define INFINITY 32767/*資料類型定義*/typedef int Item ;//為什麼我如此喜歡 int ^ ^typedef struct node{Item item ;struct node * left ;//左子樹struct node * nextsibling ;

有向圖的拓撲排序C++

   用的是深度優先搜尋,跟我半年前用的檢查頂點入度的方法不同.自覺這個東西我玩得還不透,確實還不透.  這個東西,用了些STL,雖然還沒有開始系統地學習STL,現在會的就先用上吧.  沒有給出全部代碼,給出了函數定義.最近都不會給出標頭檔之類的代碼,因為老變,我也不喜歡發重複的東西.  常式可以查出圈,雖然還不知道是否有更好來查出圈的方法,對於用深度優先搜尋的方法來說.  注釋不清楚有多少語法錯誤,因為電話壞了,最近沒怎麼學E文,過幾天就會好了吧. 

開放定址散列表(線性探測法)實現檔案C語言

/*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

隊列實現檔案C語言

/*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

開放定址散列表(平方探測法)實現檔案C語言

/*open_addressing_hash(2) -- 開放定址散列表實現檔案*/#include <stdio.h>#include <stdlib.h>#include "open_addressing_hash(2).h"/*局部函式宣告*/static int Get_Prime_Value (const int size) ;static int Is_An_Prime (const int number) ;static int Square_

開放定址散列表(線性探測法(雙散列))實現檔案C語言

/*open_addressing_double_hash.c -- 開放定址散列表雙散列實現檔案*/#include <stdio.h>#include <stdlib.h>#include "open_addressing_double_hash.h"/*局部函式宣告*/static int Get_Prime_Value (const int size) ;static int Is_A_Prime (const int number) ;static int

二叉搜尋樹實現檔案C語言(BinarySearchTree.c)

/* BinarySearchTree.c -- 二叉搜尋樹實現檔案 */#include <stdio.h>#include <stdlib.h>#include "BinarySearchTree.h"/* 局部函式宣告 */int Left_Is_Less_Than_Right (const Item left, const Item right) ;int Left_Is_More_Than_Right (const Item left, const Item

線性時間排序(三)C語言

  給定若干字串,也就是二維數組,字串指標之類的.如 ab, a, b.要求排序後為 a, ab, b.字母數為 N ,在 O(N)時間完成.這個問題,是昨天那個問題的下一個問題.我起初的方向是錯的.後來,採用了分治的方法給予實現.關於時間的分析, 每次都只對當前位置不為 NUL 的字元進行排序.所以,當然就是 O(N)了.確實,是這樣.字母的範圍,也是可以通過宏來更改的,非常方便.有實用價值.  寫部落格是個好習慣,能夠梳理我的思緒,同樣也是寫代碼時的期待. 

開放定址散列表(線性探測法(雙散列))標頭檔C語言

/*open_addressing_double_hash.h -- 開放定址散列表雙散列標頭檔*/enum KindOfEntry {Legitimate, Empty, Deleted} ;#define PRIME 7/*資料類型定義*/typedef int Item ;typedef struct cell{Item item ;enum KindOfEntry info ;} Cell ;typedef struct hashtable{int size ;Cell * lists

開放定址散列表(平方探測法)標頭檔C語言

/*open_addressing_hash(2).h -- 開放定址散列表標頭檔*/enum KindOfEntry {Legitimate, Empty, Deleted} ;/*資料類型定義*/typedef int Item ;typedef struct cell{Item item ;enum KindOfEntry entry ;} Cell ;typedef struct hashtable{int size ;Cell * lists ;} * HashTable

順序容器的使用C++

   有關順序容器的使用,覺得可以拿出來,值得拿出來的東西,寫起來也不是那麼簡單.  剛剛去軟考報名回來,軟體設計師,又要開始了.一次小小的旅行,美麗的世界,等著我吧.  貼咯,不多說.// 9-39-2011-09-03-10.09.cpp -- 第九章第三十九題#include "stdafx.h"#include <iostream>#include <string>#include <vector>using namespace std ;const

矩陣乘法模板類標頭檔C++

  這個東西,是接著上一篇的尋找矩陣乘法順序的一個實現.這個類,可以接受輸入,並且計算出最終結果.  因為最近在學習C++,所以理所當然地把這個東西寫成了類,而且是模板方式實現的.確實非常整潔.//matrix.h#ifndef MATRIX_H_#define MATRIX_H_#include <iostream>template<class T> class Matrix{private:T * * m_matrix ;int m_x, m_y ;long

線性時間排序(二)C語言

  <<AtA>>上面的一道思考題,又是一道線性時間排序的問題.  問題是這樣的,給定一個 int  型數組, 數組中每個數的位元可能不同, 如4321,有4位.數組中所有數值總位元為 N .要求在 O (N) 時間內對該數組進行排序.分析下,每次排序都取數的一位進行排序,從最低位開始,依次向左,每次只取一位.在最壞的情況下,每個數字都有M位,按照每位排序,每次排序需要的時間為 O (N / M), 總共需要 M 趟.總的時間即為 O (N / M * M), 也即 O

再散列–開放定址散列表(線性探測法)加強版可再散列經最佳化標頭檔C語言

     散列表的東西寫了有4天了.從對散列表不理解,到對散列表有了個大致的理解.從對實現不理解,到對實現有了大致的理解.今天上午寫了個可再散列的一套ADT,特意最佳化了代碼,因為在學習資料結構的同時也在學習代碼的最佳化,於是就應用上了.這套ADT更有通用性,包括對Item類型的比較,賦值,都通過函數來完成,而且有專門的可將Item類型拆成int類型的函數,這樣這套ADT用來作用到char *

總頁數: 4314 1 .... 1572 1573 1574 1575 1576 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.