題目小傳送
題意:
其實我是因為要考資料結構了,不想手寫鍊錶,找了個模板題來練練手 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...