1 佇列的原理以及adt分析
佇列是說:把一些資料按先進先出來組織,如同日常生活中的排隊過程。
佇列最主要的操作是
<1> 資料加入佇列;<2> 從佇列中取出資料;
加入佇列只能加入到佇列尾巴上,而從佇列中取出資料、則只能是取出佇列中的第乙個,一般不允許有插隊、或佇列中間刪除資料的要求。
由上述分析,佇列的adt見教材p68,同時我們也可以看出:由於佇列基本不存在中間插入/刪除資料的情況,所以佇列用順序表完成就基本足夠了,但如果進入佇列的資料可能很大或者專案很多,佇列也有用鍊錶完成的。同樣的情況,如果進出棧的資料專案很多且數量很不確定,則棧也可能用鍊錶來完成。
在這裡為了複習前面的知識,我們的程式將使用鍊錶來完成乙個佇列。於是我們可以把前面鍊錶範例b4.c複製過來。
首先定義進出佇列的資料表elemtype,這裡我們依然使用:
做完這些工作後,就可以按adt表的要求進行程式設計了。
struct elem
經典回放 多種語言系列資料結構演算法 串(C版)
我們這裡說的串 就是標準的c語言的串,這點,和我們教材中另行定義的串並不一致。我們這裡強調僅僅是按c語言的標準處理串,是因為你會按c語言的標準構造串 而不是按其它的模式定義的。在我們的教材上,串相當與乙個 struct elemtype 構造的順序表 或者是鍊錶。而在c語言中,字串是乙個字元陣列,如...
經典資料結構系列之 佇列的應用
1 前言 資料結構,是計算機程式設計中對資料儲存最基本的操作,不同的資料結構適用不同的業務場景。如今大部分情況都是呼叫開發api封裝好的類庫,直接呼叫,幾乎不需要程式設計師再去深究其中背後實現的邏輯,大大簡化和減低了對程式設計師的要求。正是這種,知其然而不知其所以然,導致很多程式設計師缺乏對於底層結...
c語言資料結構KMP經典演算法
前言 1.kmp演算法的原理 本部分內容 字串匹配是計算機的基本任務之一。舉例來說,有乙個字串 bbc abcdab abcdabcdabde 我想知道,裡面是否包含另乙個字串 abcdabd 許多演算法可以完成這個任務,knuth morris pratt演算法 簡稱kmp 是最常用的之一。它以三...