想想雙向鍊錶……雙向佇列的定義差不多,也就是說乙個佇列的隊尾同時也是隊首;兩頭都可以做出隊,入隊的操作。
現在給你一系列的操作,請輸出最後佇列的狀態;
命令格式:
lin x x表示乙個整數,命令代表左邊進隊操作;
rin x 表示右邊進隊操作;
rout
lout 表示出隊操作;
第一行包含乙個整數m(m<=10000),表示有m個操作;
以下m行每行包含一條命令;
命令可能不合法,對於不合法的命令,請在輸出中處理;
輸出的第一行包含佇列進行了m次操作後的狀態,從左往右輸出,每兩個之間用空格隔開;
以下若干行處理不合法的命令(如果存在);
對於不合法的命令,請輸出一行x error
其中x表示是第幾條命令;
8lin 5
rin 6
lin 3
lout
rout
rout
rout
lin 3
37 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塊在頭部...