洛谷 佇列安排 模板c 庫函式鍊錶應用

2021-10-07 04:21:23 字數 2308 閱讀 2505

題目小傳送

題意:

其實我是因為要考資料結構了,不想手寫鍊錶,找了個模板題來練練手 qwq…

要讓我貼手寫**?我要鬧了!!!

基本介紹一下:

list<

int> l;

//鍊錶的申明

list<

int>

::iterator it[n]

,it1;

//鍊錶的前向迭代器的申明,可以二維也可以一維也可零維,我的理解是儲存的元素迭代器的位址

push_front(1

),push_back(1

);向前插入乙個元素1和向後插入乙個元素1

pop_front()

,pop_back()

;//同理刪除元素

l.insert

(迭代器所指的位置位址,元素值)

//這裡才是鍊錶改學的地方,因為鍊錶就是因為插入元素方便才好用滴滴滴滴滴滴

//還有這個insert的返回值是插入的元素的迭代器位置

//還有......請原諒我囉嗦,這個插入是插入這個位置的左邊

l.erase

(迭代器所指向的位址)

;//刪除也方便

l.begin()

;//指向鍊錶中第乙個元素的位置

l.end()

;//指向鍊錶中最後乙個元素的後面的位置,注意不是最後乙個元素!!

//這個借助迭代器遍歷鍊錶

l.size()

;//鍊錶中的元素個數

l.empty()

;//判斷是否為空,為空返回true

//基本的就是這些了,讓我們a了它!!!

做了這個題效果更棒哦

ac**:

#include

inline

long

long

read()

while

(c >=

'0'&& c <=

'9')

return x*s;

}using

namespace std;

#define newnode (treenode *)malloc(sizeof(treenode))

#define mem(a,b) memset(a,b,sizeof(a))

#define lowbit(x) (x)&(-x)

const

int n =

1e5+10;

const

long

long infinf =

0x7f7f7f7f7f7f7f

;const

int inf =

0x3f3f3f3f

;const

double eps =

1e-7

;const

unsigned

long

long mod =

998244353

;const

double ii =

acos(-

1);const

double pp =

(ii*

1.0)/(

180.00);

typedef

long

long ll;

typedef

unsigned

long

long ull;

typedef pair<

int,

int> pii;

typedef pair piil;

list<

int> l;

list<

int>

::iterator it[n]

,it1;

//it記錄的是每乙個元素的迭代器位址,it1用來遍歷鍊錶的

int vis[n]

;int

main()

} cin >> m;

while

(m--

)for

(it1 = l.

begin()

;it1 != l.

end(

);it1++

)//借助迭代器遍歷

cout <<

*it1 <<

" ";

}

鍊錶 洛谷P1160 佇列安排

給定乙個一開始只有乙個人的序列,現要對其進行插入,刪除操作,求最後的序列 鍊錶是乙個支援任意位置插入,刪除的資料結構,所以我們可以用鍊錶完成本題 include using namespace std int n,s,x,m bool o struct node p 100001 inline vo...

洛谷P1160 佇列安排 鍊錶

先有n 1 role presentation n 1 n 1個入隊操作,每次兩個數 p role presentation pp x role presentation x x,表示第i 1 role presentation i 1 i 1個人插入到第 p role presentation p...

洛谷 P1160 佇列安排(雙向鍊錶)

題意 對陣列進行插入刪除操作,很用以就想到用鍊錶。本人習慣用陣列模擬鍊錶 如下 include include include include include using namespace std int righ 100005 lef 100005 int main else if b 1 sc...