vector 可变数组,内存空间是连续的,容量不会进行缩减。支持高效随机存取,即支持[]和at()操作。尾部插入删除效率高,其他位置插删效率较低;
list 双向链表,内存空间可不连续,不支持随机存取。插入和删除的效率很高;
deque 双端队列,内存空间是多个连续的内存块,在一个映射结构中保存对这些块以及顺序的跟踪,可利用的内存更大,且内存大小是可以自动缩减的。支持随机存取,但是随机存取性能没有vector 好。首尾插入效率高,其他位置插删效率低;...
分类:
其他好文 时间:
2014-09-26 19:20:08
阅读次数:
245
二叉排序树在不改变BinaryNode的 struct{data;*left;*right} 情况下是可以转换成双向链表的.由于二叉树的主要数据都记录在根节点BinaryNode* root 上的,所以这里就只用BinaryNode类手动建一棵树,树形如下:新增的有三个主要函数,BinaryNode...
分类:
其他好文 时间:
2014-09-25 15:43:09
阅读次数:
122
花了好几个小时,详细规划出了整个过程,包括所有基本操作。。。有什么疑问请下方留言
#include
using namespace std;
#define ElemType char
#define ERROR 0
#define OK 1
typedef struct Node
{
ElemType data;
struct Node *next;
}Node,*Lin...
分类:
其他好文 时间:
2014-09-24 00:20:15
阅读次数:
315
reverse-double-linked-list
分类:
编程语言 时间:
2014-09-23 19:27:55
阅读次数:
284
中序遍历void ConvertNode(BSTreeNode* pNode, BSTreeNode*& pLastNodeInList){ if(pNode == NULL) return; BSTreeNode *pCurrent = pNode; ...
分类:
其他好文 时间:
2014-09-16 18:51:40
阅读次数:
240
双向链表(插入,删除,追加,正反向遍历,查找。。。)
#include
#include
using namespace std;
class List
{
public:
List(void) : m_head(NULL), m_tail(NULL), m_size(0){}
~List(void)
{
for(Node* node = m_head; m_head; m_head = node)
{
node = m_he...
分类:
其他好文 时间:
2014-09-14 19:21:27
阅读次数:
230
P4:用已给的list.h编写一个双向链表,使其可以进行以下操作: 1.初始化链表 2.在链表最后处添加一个string 3.清空链表 4.依次print链表中所有的元素 5.用bubble sort将链表中所有元素排列成按字母顺序排列(类似字典) PS:bubble sort时换位不可直接互换st...
分类:
编程语言 时间:
2014-09-14 19:18:37
阅读次数:
204
线性表概述
线性表是最基本、最简单、也是最常用的一种数据结构。在线性表中数据元素之间的关系是线性,数据元素可以看成是排列在一条线上或一个环上。
线性表分为静态线性表和动态线性表,常见的有顺序表(静态的)、单向链表(动态的)和双向链表(动态的)。
线性表的操作主要包括:
(0)初始化线性表
(1)计算表的长度n。
(2)线性表是否为空
(3)将元素添加到线性表的末尾
(4)...
分类:
其他好文 时间:
2014-09-14 09:00:46
阅读次数:
226
/*dlist.h*/
#ifndef DList_H
#define DList_H
typedef int Item;
typedef struct Node * PNode; //节点指针
typedef PNode Position; //节点位置
/*定义节点类型*/
typedef struct...
分类:
编程语言 时间:
2014-09-13 09:24:25
阅读次数:
229