SDUTACM 雙向佇列

2021-07-22 02:23:34 字數 1066 閱讀 3285

想想雙向鍊錶……雙向佇列的定義差不多,也就是說乙個佇列的隊尾同時也是隊首;兩頭都可以做出隊,入隊的操作。

現在給你一系列的操作,請輸出最後佇列的狀態;

命令格式:

lin x  x表示乙個整數,命令代表左邊進隊操作;

rin x  表示右邊進隊操作;

rout

lout   表示出隊操作;

第一行包含乙個整數m(m<=10000),表示有m個操作;

以下m行每行包含一條命令;

命令可能不合法,對於不合法的命令,請在輸出中處理;

輸出的第一行包含佇列進行了m次操作後的狀態,從左往右輸出,每兩個之間用空格隔開;

以下若干行處理不合法的命令(如果存在);

對於不合法的命令,請輸出一行x error

其中x表示是第幾條命令;

8

lin 5

rin 6

lin 3

lout

rout

rout

rout

lin 3

3

7 error

#include#include#include#define maxsize 20000

struct hh

;void main()

; struct hh *l;

l=(struct hh *)malloc(sizeof(struct hh));

l->front=l->rear=0;

scanf("%d",&m);

for(i=0;irear+1)%maxsize==l->front)

pd[i]=1;

else

}else if(strcmp(a,"rin")==0)

}else if(strcmp(a,"lout")==0)

else if(strcmp(a,"rout")==0)

}if(l->front!=l->rear)

printf("%d\n",l->data[i]);

} for(i=0;i}

deque雙向佇列

deque雙向佇列是一種雙向開口的連續線性空間,可以高效的在頭尾兩端插入和刪除元素,deque在介面上和vector非常相似,下面列出deque的常用成員函式 deque的實現比較複雜,內部會維護乙個map 注意!不是stl中的map容器 即一小塊連續的空間,該空間中每個元素都是指標,指向另一段 較...

deque雙向佇列

deque雙向佇列是一種雙向開口的連續線性空間,可以高效的在頭尾兩端插入和刪除元素,deque在介面上和vector非常相似,下面列出deque的常用成員函式 deque的實現比較複雜,內部會維護乙個map 注意!不是stl中的map容器 即一小塊連續的空間,該空間中每個元素都是指標,指向另一段 較...

STL 雙向佇列

deque雙端佇列容器與vector很類似,採用線性表順序儲存結構。但與vector區別,deque採用分塊的線性儲存結構來儲存資料,每塊的大小一般為512b,將之稱為deque塊,所有的deque塊使用乙個map塊進行管理,每個map資料項記錄各個deque塊的首位址,這樣的話,deque塊在頭部...