日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构与算法基本

發布時間:2024/7/23 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构与算法基本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

棧的算法:

計算機內部空間是連續存儲的,但是可以通過邏輯上改變內存的物理結構,數據在內存上呈現出的是連續分布狀態

主要的典型數據結構

在實現棧這種數據結構時,首先要定義一個數組和一個變量。數組中所包含的元素個數就是棧的大小(棧中最多能存放多少個數據)。

變量中則存儲著一個索引,指向存儲在棧中最頂端的數據,該變量被 稱為“棧頂指針”。

棧的大小可以根據程序的需求任意指定。假設最多 也就有 100 個數據,那么定義一個能把它們都存儲下來的棧就可以了, 這樣的話就可以定義一個元素數為 100 的數組。這個數組就是棧的基礎。

接下來編寫兩個函數,一個函數用于把數據存入到棧中,也叫作壓入到棧中;另一個函數用于從棧中把數據取出來,也叫作從棧中彈出來。在這兩個函數中,都需要更新棧中所存儲的數據的總數,以及更 新棧頂指針的位置。也就是說通過使用由數組、棧頂指針以及入棧函 數和出棧函數所構成的集合,就能實現棧這種數據結構了

?

2.了解結構體的組成:

要想理解用 C 語言程序實現鏈表和二叉樹的方法,就必須先了解 何謂“結構體”。所謂結構體,就是把若干個數據項匯集到一處并賦予 其名字后所形成的一個整體。

例如,可以把學生的語文、數學、英語 的考試成績匯集起來,做成一個叫作 TestResult 的結構體。

在 struct 這個關鍵詞后面接上結構體的名字,然后在名字后面接上用“{”和“}”括起 來的程序塊,并在程序塊中列出若干個數據項。

?一旦定義完結構體,就可以把結構體當作是一種數據類型用它來定義變量。

如果把結構體 TestResult 用作數據類型并定義出了一個名 為 xiaoming 的變量(代表小明的成績),那么在內存上就相應地分配出了一塊空間,這塊空間由用于存儲 Chinese、Math、English 這三個成員 (Member)數據所需的空間匯集而來。被匯集到結構體中的每個數據項都被稱作“結構體的成員”。

在為結構體的成員賦值或是讀取成員的值時,可以使用形如 xiaoming.Chinese(表示小明的語文成績)的表達式, 即以“.”分割變量和結構體的成員

如果要編寫一個用于處理 100 名學生考試成績的程序,就需要定 義一個以 TestResult 為數據類型、包含 100 個元素的數組。通過定義, 在內存上就分配出了一塊空間,能夠存儲 100 個數據的集合,每個數據的集合中都含有 Chinese、Math、English 三個數據項。接下來只要巧妙地運用結構體的數組就可以實現鏈表和二叉樹了。

3.了解鏈表和二叉樹的實現方法:

下面講解如何使用結構體的數組實現鏈表。鏈表是一種類似數組 的數據結構,這個“數組”中的每個元素和另一個元素都好像是手拉著 手一樣。在現有的以結構體 TestResult 為數據類型的數組 Student[100] 中,為了讓各個元素“把手拉起來”,就需要在結構體中再添加一個成員

?這里的成員 Ptr 存儲了數組中另一個元素的地址。在 C 語言中,把存儲著地址的變 量稱為“指針”。這里的“*”(星號)就是指針的標志。諸位可以看到, Ptr 就是以結構體 TestResult 的指針(struct TestResult*)為數據類型的 成員。這種特殊的結構體可以稱為“自我引用的結構體”。之所以叫這 個名字,是因為在結構體 TestResult 的成員中,含有以 TestResult 的指 針為數據類型的成員,這就相當于 TestResult 引用了與自身相同的數據 類型。

在結構體 TestResult(已變成了自我引用的結構體)的數組中,每 個元素都含有一個學生的語文、數學、英語成績以及成員 Ptr。Ptr 中存 儲著本元素接下來該與哪一個元素相連的信息,即下一個元素的地址。 在鏈表的初始狀態中,會按照元素在內存上的分布情況設定成員 Ptr 的值

在二叉 樹的實現中,用的還是自我引用的結構體,只不過要改為要帶有兩個 連接信息的成員的自我引用結構體

二叉樹多用于實現那些用于搜索數據的算法,比如“二分查找法”。 比起只使用鏈表,使用二叉樹能夠更快地找到數據。因為搜索數據時 并不是像在簡單數組中那樣沿一條線搜索,而是尋著二叉樹不斷生長 出來的兩根樹杈中的某一枝搜索,這樣就能更快地找到目標數據了

因此數組對于算法和數據結構來說很重要,需要大家靈活使用

總結

以上是生活随笔為你收集整理的数据结构与算法基本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。