資料結構練習專題

2021-09-30 16:32:11 字數 2499 閱讀 4442

下面我給大家帶來一些資料結構的題,供大家欣賞:

(一)棧

鐵軌試題描述:

某城市有乙個火車站,鐵軌鋪設如圖所示,有n節車廂從a方向駛入車站,按進站順序編號為1至n。你的任務是判斷是否能讓它們按照某種特定的順序進入b方向的鐵軌並駛出車站。為了重組車廂,你可以借助中轉站c。這是乙個可以停放任意多節車廂的車站,但由於末端封頂,駛入c的車廂必須按照相反的順序駛出車站。例如:出站順序(5,4,1,2,3)是不可能的,而(5,4,3,2,1)是可能的。對於每節車廂,一旦從a移入c,就不能再回到a了;一旦從c移入b,就不能回到c了。換句話說,在任意時刻,只有兩種選擇a->c和c->b。

現在給你一種1到n的排列,請你判斷是否是題目描述的一種可能,如果是請輸出yes,否則輸出no

輸入:兩行,第一行有乙個正整數n,表示有n節車廂,第二行有n個正整數,即1到n的一種排列,兩兩之間有乙個空格分隔。

輸出:yes或者no

輸入示例:

55 4 1 2 3

輸出示例:

no棧就好

#include #include 

#include

#include

#define maxn 100 + 10

using

namespace

std;

inta[maxn],n;

intmain()

else

if(!s.empty() && s.top()==a[b])

else

if(a<=n)

s.push(a++);

else

}if(book)

printf(

"yes");

else

printf("no

");//system("pause");

}

(優先佇列)

阿格斯試題描述:

你的任務是編寫乙個稱為 argus 的系統。該系統支援乙個 register 命令 register q_num period,該命令註冊了乙個觸發器,它每 period 秒鐘就會產生一次編號為 q_nurn 的事件。你的任務是模擬出前k個事件。如果多個事件同時發生,先處理 q_num 小的事件

輸入:前若干行是register命令,以「#」結尾;最後一行是整數k。對於每條命令,1≤q_num,period≤3 000。k≤10 000。命令條數n不超過1 000。

輸出:輸出k行,即前後個事件的q_num

輸入示例:

water 2 35

eat 1 76

drink 3 35#2

輸出示例23

#include #include 

#include

using

namespace

std;

struct

node

};priority_queue

q;int

main()

intk;

cin>>k;

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

}

資料結構結合:

試題描述:

你有乙個類似「包包」的資料結構,支援兩種操作,如下表所示。 1x:把元素x放進包包 2:從包包中拿出乙個元素 給出一系列操作以及返回值,你的任務是猜猜這個「包包」到底是什麼。它可能是乙個棧《後進先出),佇列(先進先出),優先佇列(數值大的整數先出)或者其他什麼奇怪的東西。 

輸入:第一行為乙個整數n(1≤n≤1 000)。以下n行每行要麼是一條型別1的命令,要麼是一條型別2的命令後面跟著乙個整數x(1≤x≤100)。這個整數x表示執行完這條型別2的命令後,包包無錯地返回了x。輸入檔案大小不超過1mb。

輸出:輸出一行。一共有5種可能的輸出。

stack:一定是乙個棧

queue:一定是乙個佇列

priority queue:一定是乙個優先佇列

impossible:一定不是以上三種

not sure:至少有兩種是可能的

輸入示例:

51 5

1 31 2

2 22 3

輸出示例:

stack

#include #include 

#include

#include

using

namespace

std;

queue

q;stack

s;priority_queue

,less >pq;

intmain()

if(a==2

)

}int ans=qflag+pqflag+sflag;

if(ans>1

) cout

<

not sure";

if(ans==1

)

if(ans==0

) cout

<

impossible";

}

資料結構鐵軌問題 資料結構練習專題

下面我給大家帶來一些資料結構的題,供大家欣賞 一 棧 鐵軌試題描述 某城市有乙個火車站,鐵軌鋪設如圖所示,有n節車廂從a方向駛入車站,按進站順序編號為1至n。你的任務是判斷是否能讓它們按照某種特定的順序進入b方向的鐵軌並駛出車站。為了重組車廂,你可以借助中轉站c。這是乙個可以停放任意多節車廂的車站,...

資料結構專題

一.並查集 主要操作 1.合併兩個不相交集合 2.判斷兩個元素是否屬於同一集合 時間複雜度 o n n 其中 x 對於x 宇宙中原子數之和,x 不大於4,事實上,路經壓縮後的並查集的複雜度是乙個很小的常數。模板題 include includeusing namespace std for poj ...

資料結構專題qvq

傳送門 由於每次只在最後加數我們就考慮乙個神奇的動態反向st表xd include include include include include include include define ll long long define maxn 200000 10 define inf 0x7ffff...