list

8 篇文章 0 订阅

list

简介

  • 适用范围:对于存储位置和长度都无法确定的一串元素形成的序列,链是一种合适的抽象数据类型。
  • 与顺序表相比,链表在实现插入、删除时不需要移动大量元素,因此更为方便。
  • 在需要删除某个已知元素时,用list比vector要方便。

  • list是双向链表,可以分别在头和尾进行插入、删除。
  • 删除时要先判断list是否为空,否则会出错。

list常用方法

    list<int> l;
    int item;
    ierator it;

    // 和vector一样的
    l.push_back(item);  //末尾插入
    l.pop_back();       //末尾删除
    l.insert(it,item);  //任意插入
    l.erase(it);        //任意删除

    l.begin();          //头迭代器
    l.end();            //尾迭代器

    l.front();          //头元素的引用
    l.back();           //尾元素的引用

    l.clear();
    l.empty();      
    l.size();   

    //自己所特有的
    l.sort();
    l.reverse();

    l.push_front();     //表头插入
    l.pop_front();      //表头删除
    l.remove(item);     //移除元素item
    l.remove_if(谓词参数)
    l.unique();         //删除相邻的重复元素

静态链表

  • 开辟一个结构体数组,结构体的第一个成员存放数据(data)元素,第二个成员(link)存放链表中下一个数据元素在数组中的序号。
  • 应用:huffman树。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值