1, 佇列:
基本概念: 佇列是一種特殊的線性結構,它只允許在佇列的首部(head)進行刪除操作(稱為出隊);而在佇列的尾部(tail)進行插入操作(入隊)。而當佇列中沒有元素時(即 head == tail),稱為空佇列。first in first out(fifo)原則
演算法應用:佇列是廣度優先搜尋以及佇列優化的 bellman_ford 最短路演算法的核心資料結構。
基本元素:乙個陣列,兩個變數
其封裝結構休型別:
struct queue ;
定義結構體變數:struct queue q;
佇列操作的簡單damo:
//初始化
void init()
//是否為空佇列:返回1為空;
int isempty()
//入佇列
boolean push(int data)
//例項這裡後面再補上
2, 棧:
基本概念:棧限定為只能在一端進行插入和刪除操作,是一種後進先出的資料結構。
基本元素: 乙個一維陣列,乙個指向棧頂的變數 top:
int data[100];
int top = 0;
//例項這裡後面再補上
3, 鍊錶:
基本概念:
實現鍊錶: 1,需要使用指標和動態分配記憶體函式 malloc來實現。
#include int *p;
p = (int *) malloc(sizeof(int)); //int* 以 int 4個位元組的連續記憶體來作為乙個整體來存放整數。
其封裝結構體:
struct node
建立鍊錶基本步驟如下:
//頭指標的作用是方便以後從頭遍歷整個鍊錶。
struct node *head;
// 頭指標初始為空
head = null;
//建立第乙個結點
struct node *p;
//動態申請空間
p = (struct node *) malloc (sizeof(struct node));
scanf("%d",a);
//將資料儲存到當前結點
p->data = a;
p->next = null;
if(head == null) else
q = p;//導向新結點;
《演算法》筆記 鍊錶 棧和佇列
棧 佇列 表頭插入 第一步 儲存好首節點 第二步 設定新結點 第三步 讓儲存好的首節點指向新結點 node oldfirst first first new node first.item 110 first.next oldfirst 表尾插入 node oldlast last last new...
啊哈!演算法 棧 佇列 鍊錶
特點 管子,兩邊開口,先進先出 first in first out 佇列的三個基本元素 乙個陣列,兩個變數 include using namespace std struct queue typedef struct queue queue 將 struct queue 重新命名為 queue ...
棧佇列鍊錶演算法總結
1.佇列 struct queue 2.棧棧的基本操作 定義棧 stacks 入棧 定義棧元素 s.push i 出棧 刪除棧元素 s.pop 返回棧頂元素的值 s.top 判斷棧是否為空 s.empty 值為0說明不空 值為1說明棧為空 棧的用法例項 include include using n...