下面我給大家帶來一些資料結構的題,供大家欣賞:
(一)棧
鐵軌試題描述:
某城市有乙個火車站,鐵軌鋪設如圖所示,有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
輸入示例:
5 4 1 2 3
輸出示例:
no棧就好
#include #include#include#include
#define maxn 100 + 10
using namespacestd;inta[maxn],n;intmain()
memset(a,66,sizeof(a));
stacks;
scanf("%d",&n);for(int i=1;i<=n;i++)
scanf("%d",&a[i]);int a=1,b=1;bool book=true;while(b<=n)
else if(!s.empty() && s.top()==a[b])
s.pop();
b++;
}else if(a<=n)
s.push(a++);elseif(book)
printf("yes");elseprintf("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
輸出示例
#include #include#include
using namespacestd;structnode
intk;
cin>>k;for(int i=1;i<=k;i++)
node a;
a.num=q.top().num;
a.data=q.top().data;
a.tie=q.top().tie+q.top().data;
printf("%d\n",q.top().num);
q.pop();
q.push(a);
資料結構結合:
試題描述:
你有乙個類似「包包」的資料結構,支援兩種操作,如下表所示。 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:至少有兩種是可能的
輸入示例:
1 51 3
1 22 2
2 3輸出示例:
stack
#include #include#include#include
using namespacestd;
queueq;
stacks;
priority_queue,less >pq;intmain()
if(a==2)
int ans=qflag+pqflag+sflag;if(ans>1)
cout<
if(ans==0)
cout<
資料結構鐵軌問題 stack 鐵軌問題
每輛火車都從a方向駛入車站,再從b方向駛出車站,同時它的車廂可以進行某種形式的重新組合。假設從a方向駛來的火車有n節車廂 n 1000 分別按順序編號為1,2,n。假定在進入車站之前每節車廂之間都是不連著的,並且它們可以自行移動,直到處在b方向的鐵軌上。另外假定車站c裡可以停放任意多節的車廂。但是一...
資料結構複習專貼
資料結構這個東西實在是比較鬱悶,可是要考試了,就複習一下吧.第一章 概論 1.資料是資訊的載體,是能夠輸入到計算機中,並被計算機識別,儲存和處理的符號的集合.2.資料元素是資料中具有獨立意義的個體.乙個資料元素可以由若干各資料項 稱為字段,域 組成.3.資料型別是具有相同性質的計算機資料的集合及再這...
資料結構練習
include include define size 20 typedef struct list 重新命名結構體 list t 建立 list t creat list int size list length 0 空表初始化,實際長度為0 return list 返回堆區申請的首位址 判空 i...