美文网首页
c++ stack栈 - queue对列 - list双向链表

c++ stack栈 - queue对列 - list双向链表

作者: 简书网abc | 来源:发表于2024-01-12 00:38 被阅读0次
    #include <future>
    #include <iostream>
    #include <stack>
    
    using namespace std;
    
    // 栈 不提供迭代器和遍历, 先进后出
    void test01() {
        stack<int> s;
        s.push(10); // 进栈容器
        s.push(20);
        s.push(30);
    
        if( !s.empty() ) {
            cout << "栈的大小: " << s.size() << endl;
            while (!s.empty()) {
                cout << s.top() << " "; // 取出栈顶元素.
                s.pop();                // 删除栈顶元素.
            }
            cout << endl;
        }
        cout << "test01 end ... stack 栈操作 " << endl;
    }
    
    // 队列 不提供迭代器和遍历 先进先出
    #include <queue>
    void test02() {
        queue<int> q;
        q.push(10); // 进对列容器
        q.push(20);
        q.push(30);
    
        if( !q.empty() ) {
            cout << "队列的大小: " << q.size() << endl;
            while (!q.empty()) {
                cout << q.front() << " "; // 从对列头部取出数据,火车头.
                q.pop();                // 删除对列头部数据.
            }
            cout << endl;
        }
        cout << "test01 end ... queue 对列操作 " << endl;
    }
    
    
    #include <list>
    void printListInt(list<int> &li) {
        list<int>::iterator it = li.begin();
        for (;  it != li.end() ; it++) {
            cout << *it << " ";
        }
        cout << endl;
    }
    
    // 双向链表 list
    void test03() {
        list<int> li;
        li.push_back(10);
        li.push_back(20);
        li.push_back(30);
        li.push_back(40);
        li.push_back(50);
        printListInt(li);
    
        // list容器是双向迭代器,不支持+2, 支持++
        list<int>::iterator it = li.begin();
        it++;
        it++;
        li.insert(it, 3, 99);
        printListInt(li);
    
        // 链表的排序,标准stl-sort不支持
        li.sort();
        printListInt(li);
        li.reverse();           // 链表反转
        printListInt(li);
    
        cout << "test03 end ... list 双向链表操作 " << endl;
    }
    
    int main() {
        test01();
        test02();
        test03();
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:c++ stack栈 - queue对列 - list双向链表

          本文链接:https://www.haomeiwen.com/subject/mflxodtx.html