首页 > 其他分享 >list

list

时间:2023-06-06 23:44:41浏览次数:37  
标签:node tmp begin ListNode list next prev

 

 

#include <cstring>
template <class Tp>
struct ListNode
{
    Tp data;
    ListNode* next;
    ListNode* prev;
};

template <class Tp>
class List
{
public:
    List()
    {
        m_node = new ListNode<Tp>;
        m_node->next = m_node;
        m_node->prev = m_node;
    }
    ~List() 
    {
        clear();
        delete m_node;
    }
    void push_back(const Tp& x)
    {
        ListNode<Tp>* tmp = new ListNode<Tp>;
        tmp->data = x;
        tmp->next = m_node;
        tmp->prev = m_node->prev;
        m_node->prev->next = tmp;
        m_node->prev = tmp;
    }
    void pop_front()
    {
        ListNode<Tp>* begin = m_node->next;
        begin->prev->next = begin->next;
        begin->next->prev = begin->prev;
        delete begin;
    }
    Tp front()
    {
        return m_node->next->data;
    }
    bool empty()
    {
        return m_node->next == m_node;
    }
    void clear()
    {
        ListNode<Tp>* cur = m_node->prev;
        while (cur != m_node)
        {
            ListNode<Tp>* tmp = cur;
            cur = cur->next;
            delete tmp;
        }
        m_node->next = m_node;
        m_node->prev = m_node;
    }
private:
    ListNode<Tp>* m_node;
};

 

标签:node,tmp,begin,ListNode,list,next,prev
From: https://www.cnblogs.com/ho966/p/17462089.html

相关文章

  • uniapp使用uview组件的indexList写选择城市
    <template><viewclass=""><viewclass="top"><viewclass="search-boxmt10flexalcenter"><viewclass="search-input"><u-search:showAction=&q......
  • fluent读取网格文件报错:eof inside list是什么意思,怎么解决?
    做好二维网格之后,导入fluent中网格文件,发现报错:eofinsidelisteofinsidelist这个一般是指格式出错,应该是网格中的一些问题,可以检查一遍网格,尤其是对于边界条件的定义方面,我检查了一遍发现是网格边界在命名的时候出现了非法字符:;,重新修改名称之后就没有问题了。......
  • qt 中的QlistWidget
       ......
  • dataTemplate 的使用之listView
    <Windowx:Class="WpfApplication1.Window39"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:c="clr-namespace:System......
  • vue3+vant4+vuex4实现todolist备忘录案例
    案例图片如下:  1<van-cell-group>2<van-cell>3<van-row>4<van-colspan="20">5<van-field6:value="content"7@change="handl......
  • 【JAVA 8】 List 使用Lambda表达式操作对象字段进行升序、降序
    总结使用Lambda表达式轻松对集合进行排序1、需要排序的对象implementsComparable接口,并重写compareTo方法指明默认排序的字段2、使用java8的API轻松实现对List的排序代码中也涉及了一些java8的语法嘻嘻,对新语法我也不熟悉Mainpublicstaticvoidmain(String[]args){......
  • Java集合List转树结构工具类-函数版
    工具类:packagecom.example.mindsa.util.tree;importcom.baomidou.mybatisplus.core.toolkit.support.SFunction;importlombok.SneakyThrows;importjava.lang.invoke.SerializedLambda;importjava.lang.reflect.Method;importjava.util.List;importjava.util.func......
  • Redis系列14:使用List实现消息队列
    Redis系列1:深刻理解高性能Redis的本质Redis系列2:数据持久化提高可用性Redis系列3:高可用之主从架构Redis系列4:高可用之Sentinel(哨兵模式)Redis系列5:深入分析Cluster集群模式追求性能极致:Redis6.0的多线程模型追求性能极致:客户端缓存带来的革命Redis系列8:Bitmap实现亿万级......
  • CMakeLists.txt 编写模板
     新建文件  CMakeLists.txt #设置cmake的最低版本cmake_minimum_required(VERSION2.8)#指定为C++11版本set(CMAKE_CXX_STANDARD11)#设置工程名称project(wss)message(${PROJECT_SOURCE_DIR})set(SRC_LIST${PROJECT_SOURCE_DIR}/src/websocket_s......
  • Andrid listview异步图片加载之优化篇
    关于listview的异步加载,网上其实很多示例了,总体思想差不多,不过很多版本或是有bug,或是有性能问题有待优化。有鉴于此,本人在网上找了个相对理想的版本并在此基础上进行改造,下面就让在下阐述其原理以探索个中奥秘,与诸君共赏…        贴张效果图先:         异步加载......