List容器的应用:
//----------单链队列-------队列的链式存储结构---------------
typedef struct QNode{ typedef struct{
QElemType data; QueuePtr front; //队头指针
struct QNode *next; QueuePtr rear; //队尾指针
}QNode,*QueuePtr; }LinkQueue;
注释:list(双向链表):用动态链式存放数据,可以从任何位置快速插入和删除元素。在插入数据时需定位 迭代子的位置和值,即:inset(“迭代子位置”,“迭代子的值”)。
一个简单的创建list链表的 例子:
#include<iostream>
#include<list>
#include<iterator>
Using namespace std;
Void main(){
List<int> L;
List<int>::iterator p;
int i,a[5]={1,2,3,4,5},b[3]={6,7,8};
p=L.begin();
for(i=0;i<5;i++){ L.insert(p,a[i]); }
p=L.begin();
while(p!=L.end())
{ cout<<*p<<" "; p++; }
cout<<endl;
p=L.begin(); //用push_back()函数在已有list序列尾扩容(插入数组)
for(i=0;i<3;i++){ L.push_back(b[i]); }
p=L.begin(); //用push_front()函数在已有list序列头扩容(插入数据)
L.push_front(0);
//p1=a1.begin();
L.push_front(9);
p=L.begin(); L.sort();
p=L.begin();
while(p!=L.end()){ cout<<*p<<” “; p++; }
cout<<endl;
//L.pop_front(); L.pop_back(); //删除list头和 list尾
//L.begin();for(;p!=L.end();p++){ if(*p==1){ *p=5; } } //修改不成功
}