数据结构基础

1、栈(Stack)

特点:后入先出

基本操作:

  • push(x):在栈顶部添加元素x
  • pop(x):从栈顶部取出元素
  • isEmpty():检查栈是否为空
  • isFull():检查栈是否已满

 

void initialize(){
    top = 0;
}

void isEmpty(){
    return top == 0;
}

void isFull(){
    return top >= MAX-1;
}

void push(int x){
    if(isFull)    return;
    S[++top] = x;
}

void pop(){
    if(isEmpty())
        return;
    top--;
    return S[top+1];
}
View Code

 

//通过标准库建立栈
#include<stack>

stack<int> S;

 

 

2、队列

特点:先入先出

基本操作:

  • enqueue(x):在队列末尾添加元素
  • dequeue():从队列开头取出元素
  • isEmpty():检查队列是否为空
  • isFull():检查队列是否已满
//通过标准库建立队列
#include<queue>

//使用标准库中的queue
queue<pair<string, int>> Q;
for(int i = 0; i< n;i++)
{
    cin >> name >> time;
    Q.push(make_pair(name, time));
}

pair<string, int> u;
u = Q.front();
cout << u.first;

 

其中pari是保存成对数值的结构体模板,声明时需要在<>中指定两个数据类型

make_pair用于生成一对数值,第一个元素用first访问,第二个用second访问

 

3、vector

动态数组

 

 

4、list

双向链表

 

5、迭代器

是一种对象,可以对STL容器的元素进行迭代处理,指向容器内部的特定位置。

//使用迭代器进行vector中元素的遍历

void print_vecror(vector<int> v)
{
    vector<int>::iterator it;
    for(it = v.begin()+2; it != v.end(); it++) cout << *it;
    cout << endl;
}

 

posted @ 2021-09-15 23:23  晓尘  阅读(76)  评论(0)    收藏  举报