我是照着侯捷老师的《STL源码剖析》做的cghSTL,现在才看到第三章,忽然觉得这本书的编排非常适合自学。
第一章讲解空间配置器,这是STL最基础的部件,没什么好说的。
第二章讲解迭代器,老师举了单向链表的例子,这非常有考究,单向链表不需要连续的存储空间,意味着使用单向链表实现的容器不需要考虑空间溢出等问题,我们可以把注意力集中在容器的迭代器上。
第三章讲解序列式容器,一来说怎么实现vect...
分类:
其他好文 时间:
2016-05-18 19:17:35
阅读次数:
209
一)HashMap基本简述 HashMap底层主要是基于数组和链表实现的,数组中存放的元素就是一个单向链表,因此我们可以将HashMap理解为单向链表数组。 在HashMap源码中我们可以看到其中一些关键属性,例如:transient Entry[] table; 这个就是用来存储元素的实体数组,其 ...
分类:
编程语言 时间:
2016-05-13 14:03:17
阅读次数:
142
链表简介:
链表是哟中常用的数据结构,它通过指针将一系列数据节点连接成一条数据链。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或者删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。
1. 链表对比
传统链表和内核链表
传统链表:一般指的是单向链表
struct List
{
struct li...
分类:
系统相关 时间:
2016-05-13 04:04:47
阅读次数:
308
将单向链表L0→L1→…→Ln-1→Ln转化为L0→Ln→L1→Ln-1→L2→Ln-2→…的形式,也就是从头部取一个节点,从尾部取一个节点,直到将原链表转化成新的链表。...
分类:
其他好文 时间:
2016-05-12 18:20:38
阅读次数:
110
我认为程序的可读性和界面的友好性其实是一个道理--便于操作或者维护,比如你要上传一记录,除了固有属性,还要区分已上传和未上传,那么最好有一个结构在调试的时候就能分类罗列好,且便于按关键字搜索,需要一个单向链表并外面加一层搜索和修改的操作类,这样不用每个需要上传的记录都重新去select,改程序的时候 ...
分类:
其他好文 时间:
2016-05-11 11:04:04
阅读次数:
105
给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。因为要求时间复杂度为O(1),所以肯定不能遍历链表,那样的话时间复杂度就是O(N)了;可以想到,其实要求删除该结点,真正的目的并不是要将结点的数据包括结点所占的内存都给删除,只是想让数据消失就可..
分类:
其他好文 时间:
2016-05-09 22:17:45
阅读次数:
249
【华为OJ】【算法总篇章】【华为OJ】【035-输出单向链表中倒数第k个结点】【工程下载】题目描述输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。
输入描述输入说明
1 输入链表结点个数
2 输入链表的值
3 输入k的值
输出描述输出一个整数
输入例子8 1 2 3 4 5 6 7 8 4
输出例子4
算法实现import org.omg.SendingContex...
分类:
其他好文 时间:
2016-05-09 08:37:52
阅读次数:
160
关于链表链表是一种动态的数据结构,因为在创建链表时无需知道链表的长度,当插入一个节点时,只需要为新的节点分配内存,其空间效率和数组相比要高,但是每次都要创建空间所以时间不是很高单向链表定义节点structListNode
{
intm_value;
ListNode*m_pNext;
};在链表后面添加节..
分类:
其他好文 时间:
2016-05-09 07:19:02
阅读次数:
141
1.设立2个指针i,j指向头结点 2.i走1步,j走2步.如果有环,j一定能追上i; 3.如果j不为空,且i和j相等此链表即为有环。 ...
分类:
其他好文 时间:
2016-05-08 13:31:58
阅读次数:
115
#include
using namespace std;
/*对象链表(new/delete)*/
#define LEN sizeof(stu)
//定义单向链表结点的数据类型
class stu
{
public:
char name[20];
int age;
int sex;
stu * Next;
};
void CreateList(int, stu **);
void ...
分类:
编程语言 时间:
2016-05-08 06:45:53
阅读次数:
184