易錯點 queue中的入隊出隊

2021-08-02 05:15:20 字數 1433 閱讀 7864

哎呀呀呀呀呀,queue沒學好就是不行啊,每次都把佇列想象成頭進尾出,然後就尷尬了。

queue前期最大的用處就是bfs了,哎,每次bfs都去訪問queue.back()怎麼能對啊,最重要的還不是這個,是我每寫一次就忘一次,這bfs還怎麼寫啊所以今天就吧這個錯誤記錄到部落格上,以免以後再犯。

這題我做了好久才發現這個錯誤,尷尬。

題目**:微軟大樓設計方案(戳我)

錯誤的**:

#include

#include

#include

#include

#include

#include

int gox[4] = ,goy[4] = ,num[1001][1001],f[1001][1001],indexx[1001],indexy[1001],n,m,k;

const

int inf = 0x3f3f3f3f;

int get_ans(int x1,int y1,int x2,int y2)

}return inf;

}void change(int l,int h)

int main()

std::cin>>m;

for(int i = 1;i<=m;i++)

int ans = 0;

for(int i = 1;i<=m;i++)

for(int j = i+1;j<=m;j++)

}std::cout

// fclose(stdout);

return

0;}

就是因為那個back啊啊啊啊啊啊,浪費了我好幾個小時啊啊啊啊啊。

正確**:

#include

#include

#include

#include

#include

#include

int gox[4] = ,goy[4] = ,num[1001][1001],f[1001][1001],indexx[1001],indexy[1001],n,m,k;

const

int inf = 0x3f3f3f3f;

int get_ans(int x1,int y1,int x2,int y2)

}return inf;

}void change(int l,int h)

int main()

std::cin>>m;

for(int i = 1;i<=m;i++)

int ans = 0;

for(int i = 1;i<=m;i++)

for(int j = i+1;j<=m;j++)

}std::cout

// fclose(stdout);

return

0;}

隊的定義 入隊和出隊

隊是限定在表的一端進行插入另一端進行刪除的線性表。特點 先進先出 fifo 後進後出 lilo 包含順序隊和鏈隊 順序隊 front rear 0表示隊空,入隊rear 1,出隊 front 1 順序隊的容量定義為m。但是當front rear m時,會導致假溢位,因為此時隊裡沒有元素,卻被認為隊滿...

鏈佇列的入隊 出隊

test demo.cpp 定義控制台應用程式的入口點。include stdafx.h include stdio.h include windows.h define queuesize 100 假定預分配的佇列空間最多為100個元素 typedef char datatype 假定佇列元素的資...

佇列的入隊 出隊操作

程式設計實現佇列的入隊 出隊操作 先進先出 include using namespace std node表示佇列中每個節點元素 typedef struct node node queue表示佇列 typedef struct queue queue 建立空佇列 queue createqueu...