C語言中的佇列 棧和鍊錶

2021-09-28 18:10:59 字數 2216 閱讀 7910

佇列在生活中十分常見,例如排隊買票就是乙個佇列,先排隊的人會先買到票,佇列就是乙個「先到先服務」的處理。

佇列一般包含三個元素:佇列中存放的資料,隊頭和隊尾兩個指標。出隊即讓隊頭指標++,即指標向後移動一位,資料即可出隊。類似的,資料入隊就讓隊尾指標++,即隊尾指標向後移動一位。

結構體的初始化:

struct lei

;lei x1, x2;

結構體初始化首先定義結構體的型別,就像c語言中的int、char一樣,只是結構體的型別是我們自己定義的;之後定義結構體裡面的元素,定義完之後在大括號後打上分號。之後再申明結構體變數的名稱。

定義結構體的同時也可以定義結構體的名字,例如:

struct lei

student1, student2;

/*解密qq號:解密規則為每次刪除佇列的第乙個數,將第二個數移到隊尾,直到資料刪完為止,把這些刪除的數連在一起就是qq號, 隊列為631758924*/

//1.先用陣列模擬佇列來實現操作

#include

intmain()

head =0;

tail = n;

while

(head < tail)

//當佇列不為空時執行操作

getchar()

;getchar()

;return0;

}//2.定義結構體來實現相關操作

#include

struct card //定義乙個card型的結構體,有三個元素,資料域、頭指標和尾指標

;int

main()

while

(a.head < a.tail)

getchar()

;getchar()

;return0;

}

棧與佇列有所不同,佇列是『先進先出』的處理;棧是『先進後出』的處理,棧是一種特殊的線性表,只允許在固定的一端進行操作,操作的那端稱為『棧頂』,棧的另一端稱為『棧底』。棧有順序棧和鏈棧,順序棧類似陣列,鏈棧類似於鍊錶。不含元素的棧稱為空棧。

//判斷一組資料是不是回文數。回文數就是正讀和反讀相同的一組字串行

#include

#include

intmain()

if(len %2==

0)else

if(len %2!=

0)for(i = next; i < len; i++

) top--;}

if(top ==0)

printf

("yes");

else

printf

("no");

getchar()

;getchar()

;return0;

}

鍊錶需要用到指標操作,先來了解指標。

簡單地講,c語言中將位址形象化地稱為「指標」,指標能找到以它為位址的記憶體單元。

那麼講單向鍊錶。單向鍊錶包含資料域和指標域,顧名思義,資料域就是儲存資料的區域,指標域存放的是下乙個元素的位址,鍊錶就這樣通過指標域互相串聯起來,像一條鍊子。

//建立乙個包含n個數字的鍊錶

#include

#include

struct node //建立包含資料域和指標域的結構體

;//;號不能忘

intmain()

t = head;

while

(t !=

null

)getchar()

;getchar()

;return0;

}//將數字6插入鍊錶1、2、3、4、5、7、8的第六位

#include

#include

struct node //定義結構體

;int

main()

scanf

("%d"

,&a)

;//讀入待插入的數

t = head;

//從頭遍歷

while

(t !=

null)

t = t->next;

} t = head;

while

(t !=

null

)getchar()

;getchar()

;return0;

}

陣列 鍊錶 佇列和棧 佇列,C語言實現

佇列,顧名思義就是很多個資料在排隊。既然是排隊,那就不能從最前面或者中間插進去,新來的資料只能排在隊伍的最後。另外,我們另外規定只有隊伍最前面的資料才能出去。當然,其實也只有隊伍最前面的資料能被外界檢視。能滿足這種功能的資料結構稱之為佇列。我們可以用陣列 鍊錶實現佇列。這裡用陣列實現簡單佇列。申請1...

鍊錶,棧和佇列

1.建立鍊錶 package com.zzw.鍊錶 非常基本的單項鍊表 author john public class node 新增乙個結點 node end new node d node n this while n.next null n.next end 刪除單向鍊錶中的結點 node ...

資料結構 C語言鍊錶構造棧和佇列

2.佇列 才開始學資料結構,寫點筆記,加深理解。棧和佇列是資料結構的基礎,很多演算法都會基於這兩個結構,比如dfs基於棧和bfs基於佇列。棧和佇列可以用鍊錶構造,也可以用陣列構造,我這裡是用鍊錶構造,並且是沒有長度的 編寫語言 c 編寫環境 vc 6.0 其實和組合語言的堆疊是乙個意思,先進後出,後...