線性表——棧,佇列,鍊錶
二.佇列
三.雙端佇列
鍊錶棧(stack)(last in first out);後進先出
#include
using
namespace std;
int s[
10005];
int tot;
void
push
(int x)
void
pop(
)void
print()
void
top(
)int
main
(void
)
輸出:
1
top=11
2top=21
23top=31
2top=21
top=
1
int s[
10005
],tot=0;
#define push(x) s[++tot]=x
#define pop tot--
#define size tot
#define top s[tot];
stl中的stack無法隨機訪問
#include
#include
using
namespace std;
stack<
int>s;
intmain()
puts(""
);return0;
}
p1241 括號序列
題目描述
定義如下規則序列(字串):
1.空序列是規則序列;
2.如果s是規則序列,那麼(s)和[s]也是規則序列;
3.如果a和b都是規則序列,那麼ab也是規則序列。
例如,下面的字串都是規則序列:
(),,(()),(),(),()[()]
而以下幾個則不是:
(,[,],)(,()),([()
現在,給你一些由『(』,『)』,『[』,『]』構成的序列,你要做的,是補全該括號序列,即掃瞄一遍原序列,對每乙個右括號,找到在它左邊最靠近它的左括號匹配,如果沒有就放棄。在以這種方式把原序列匹配完成後,把剩下的未匹配的括號補全。
輸入格式
輸入檔案僅一行,全部由『(』,『)』,『[』,『]』組成,沒有其他字元,長度不超過100。
輸出格式
輸出檔案也僅有一行,全部由『(』,『)』,『[』,『]』組成,沒有其他字元,把你補全後的規則序列輸出即可。
輸入輸出樣例
輸入 #1
([()
輸出 #1
()說明/提示
將前兩個左括號補全即可。
在這裡插入**片
p1449 字尾表示式
題目描述
所謂字尾表示式是指這樣的乙個表示式:式中不再引用括號,運算符號放在兩個運算物件之後,所有計算按運算符號出現的順序,嚴格地由左而右新進行(不用考慮運算子的優先順序)。
如:3*(5–2)+7對應的字尾表示式為:3.5.2.-*7.+@。』@』為表示式的結束符號。『.』為運算元的結束符號。
輸入格式
輸入:字尾表示式
輸出格式
輸出:表示式的值
輸入輸出樣例
輸入 #1
3.5.2.
-*7.+@
輸出 #1
16
說明/提示
字串長度,1000內。
佇列:first in first out先入先出。
int s[
10005
],fnt,end;
#define push(x) s[++end]=x
#define pop fnt++
#define front s[fnt]
#define size end-fnt+1
題目描述
n個人(n<=100)圍成一圈,從第乙個人開始報數,數到m的人出列,再由下乙個人重新從1開始報數,數到m的人再出圈,……依次類推,直到所有的人都出圈,請輸出依次出圈人的編號.
輸入格式
n m輸出格式
出圈的編號
輸入輸出樣例
輸入 #1
10
3
輸出 #1
3 6 9 2 7 1 8 5 10 4
使用佇列來做
#include
#include
#include
using
namespace std;
queue<
int>q;
int n,k;
intmain()
else
} cout
}
公式法,求最後留下來的人
#include
using
namespace std;
typedef
long
long ll;
const ll maxn=
1e6+5;
ll n,k,cnt;
intmain()
#include
#include
using
namespace std;
deque<
int>d;
intmain()
輸出:
1101
10
資料結構(線性表)
1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...
資料結構 線性表
參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...
資料結構 線性表
線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...