数据结构——表(list)

#include <iostream>

#include <list>

using namespace std;

标准类的存储方式为双向循环链表

list类

 1 class list
 2 {
 3     list();
 4     list(int n,const T&value=T());
 5     list(T *first,T *last);
 6     //push_back();
 7     //pop_back();
 8     //size();
 9     //以上方法与向量相同 list中也包含
10     void push_front(const T&value);
11     void pop_front();
12
13      iterator begin();    //迭代器 默认指向第一个node
14     iterator end();        //指向表头
15
16     void erase (iterator pos);
17     void erase (iterator first,iterator last);//删区间
18     iterator insert(iterator pos,const T&value);//插在pos前
19 }

iterator(STL通用)

*iter;  //指向节点的值

iter++;  //指向next

iter--;

iter1==iter2;  //指向同一个位置

*iter1==*iter2;  //值相等 位置不一定

实例化:

std::list<int>::iterator iter=list.begin();

删除(!):

list.erase(iter++);  //注意++ 否则删除节点之后的表丢失 内存泄露

           //此处++运算符重载后 先获取下一节点位置再删除 若++iter则先删除再获取下一位置

插入练习:

void doubleData(std::list <T> &aList)

{

  std::list<T>::iterator p=aList.begin();

  while(p!=aList.end())

  {

    aList.insert(p,*p);

    p++;

  }

}

//初始数据:1234 输出结果:11223344

时间: 2024-10-14 07:53:20

数据结构——表(list)的相关文章

数据结构——表

数据结构--表 1.定义: 线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于当中的结点,有且仅有一个開始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其他的结点都有且仅有一个前驱和一个后继结点. 2.特征/性质 1)集合中必存在唯一的一个第一个元素 2)集合中必存在唯一的一个最后元素 3)除最后一个元素之外,均有唯一的后继 4)除第一个元素之外,均有唯一的前驱 3.线性表的基本操作 1)初始化线性表InitList(L) 2)销毁线性表DestoryL

Cocos2d-x 脚本语言Lua基本数据结构-表(table)

table是Lua中唯一的数据结构,其他语言所提供的数据结构,如:arrays.records.lists.queues.sets等,Lua都是通过table来实现,并且在lua中table很好的实现了这些数据结构.--摘自:<Programming in Lua> 看以下代码,可以很清晰的明白Lua中表的使用: -- Lua中的表,table Config = {hello="Hello Lua",world="World"} -- 赋值方式1,以键=

通过自己实现java中的ArrayList和LinkedList 深入理解数据结构---&quot;表&quot;

杂谈最基本数据结构--"表": 表结构是一种最基本的数据结构,最常见的实现是数组,几乎在每个程序每一种开发语言中都提供了数组这个顺序存储的线性表结构实现. 什么是线性表? 由0个或多个数据元素组成的有限序列.如果没有元素,称为空表,如果存在多个元素,则第一个元素无前驱,最后一个元素无后继,其他元素元素都有且只有一个前驱和后继. ArrayList和LinkedList ArrayList和LinkedList是顺序存储结构和链式存储结构的表在java语言中的实现. ArrayList提

串的数据结构表——顺序串与链式串

串的结构类似与线性表,只不过串的数据元素是一个字符,即是由零个或多个字符组成的有限序列. 一.串的顺序存储 串的顺序存储结构也就是顺序存储,即串中的字符被依次的存在一组连续的存储单元中,可以类比线性表的顺序存储,可以写出其数据结构如下: typedef struct st { char *ch; //串存放的起始地址,串中第i个字符存储在ch[i-1]中 int length; //串的长度 int strsize; //分配的存储空间的大小,如果不足,在通过realloc()分配增加空间 }s

数据结构-表

1st 更新: 以前的时候一直对数据结构怀有一种仰视的态度,最近在看<数据结构与算法分析>,似乎一下子找到了一些感觉.可能就是一直在想的,应用.这里结合ArrayList和LinkedList理解一下表的数据结构. 主要是自己的一些理解,其中难免由于个人能力理解不准确的地方,所以请以批判的眼光看待 写作目的并不以科教为主,所以不是那么通俗易懂 LinkedList 链表的一个基本概念,节点,在该类中定义为内部类 由此内部类可以看出,linkedList不是简单的单链表,而是双向链表,既知前驱又

数据结构与算法分析(5)表、栈和队列(一)

      本节讨论最简单和最基本的三种数据结构:表,栈和队列. 每种程序都明晰地至少使用一种这样的数据结构,而栈在程序中总要间接地用到. 内容: 1.介绍抽象数据类型(ADT)的概念; 2.阐述如何对表进行有效的操作; 3.介绍栈ADT及其在实现递归方面的应用; 4.介绍队列ADT及其在操作系统和算法设计上的与应用. (1)抽象数据类型 程序设计的基本法则之一是:例程不应超过一页. 模块化的优点: 1)调试小程序比调试大程序容易的多: 2)多个人同时对一个模块式程序编程更加容易: 3)一个写得

第3章 文件I/O(3)_内核数据结构、原子操作

3. 文件I/O的内核数据结构 (1) 内核数据结构表 数据结构 主要成员 文件描述符表 ①文件描述符标志 ②文件表项指针 文件表项 ①文件状态标志(读.写.追加.同步和非阻塞等状态标志) ②当前文件偏移量 ③i节点表项指针 ④引用计数器 i节点 ①文件类型和对该文件的操作函数指针 ②当前文件长度 ③文件所有者 ④文件所在设备.文件访问权限 ⑤指向文件数据在磁盘块上所在位置的指针等. (2)3张表的关系 4. 文件的原子操作 (1)文件追加 ①打开文件时使用O_APPEND标志,进程对文件偏移量

DEDEcms二次开发数据表参数

1.程序核心程序目录及简介 /include目录    程序核心目录 config_base.php 环境定义文件.用于检测系统环境,定义工作目录,保存数据库链接信息,引入常用函数等,建议不要修改. config_hand.php 系统配置文件.定义系统常用的配置信息定义,可从后台管理直接生成该文件. config_passport.php 通行证文件 config_rglobals.php 检测系统外部变量 config_rglobals_magic.php 同上 inc_archives_v

MFT的文件名属性数据结构

在NTFS文件系统中,文件名属性的类型值是0x30.从这个属性名就可以知道文件名属性是用来存储文件名的,其实这个属性还可以存储文件的大小和时间等信息.在文件名属性中还记录这父目录的MFT索引号,可以根据这个MFT索引号构建出原始的目录树结构. 在NTFS文件系统中 文件名属性是用unicode编码表示的,这点和之前学的FAT32文件系统略有不同. 下面是文件名属性体的数据结构表 字节偏移 描述 00-07 父目录的文件参数号 08-0F 文件建立时间 10-17 最后修改时间 18-1F MFT