链表是最基本的数据结构之一,建立单项链表步骤如下定义链表节点定义三个指针——头指针,尾指针,当前结点指针。并分别申请内存,初始化判断是不是头指针,如果是,则当前结点赋值给头指针,尾指针的后继为空;如果当前不是头指针,在尾指针后追加当前结点完成插入操作后,更新尾指针和尾指针的后继重新申请一块内存为新的...
分类:
其他好文 时间:
2015-10-09 19:41:07
阅读次数:
151
1. Array & List1.1SortArray的变更操作,好好运用尾指针:88题的end,75题的blueHead88. Merge Sorted Array (Array)75. Sort Colors21. Merge Two Sorted Lists23. Merge k Sorted...
分类:
其他好文 时间:
2015-10-03 20:40:23
阅读次数:
275
BFS与DFS的讨论:BFS:这是一种基于队列这种数据结构的搜索方式,它的特点是由每一个状态可以扩展出许多状态,然后再以此扩展,直到找到目标状态或者队列中头尾指针相遇,即队列中所有状态都已处理完毕。DFS:基于递归的搜索方式,它的特点是由一个状态拓展一个状态,然后不停拓展,直到找到目标或者无法继续拓...
分类:
编程语言 时间:
2015-08-28 19:30:42
阅读次数:
197
这次的代码比较长,原因是比之前的Vector实现增加了许多的操作,而且毕竟指针操作嘛,处理起来稍微麻烦一点。
List实现中非常重要的一点,就是定义一个头指针和一个尾指针,这样可以避免对很多的特殊情况的处理,当链表为空时就是头指针指向尾指针,另外一个就是迭代器的实现,
list的迭代器的实现比vector要麻烦许多,因为内存不连续,所有采用了内部嵌套类的方式,重载了*(解引用),++EXP(前...
分类:
编程语言 时间:
2015-08-25 16:37:20
阅读次数:
168
前言使用没有指针的语言模拟实现数据结构,会碰到一些莫名奇妙的问题单向循环链表之前学习的链表都是单向且最后一个节点指向空节点,如果最后一个节点指向头节点,这样就形成了一个环,名字叫单向循环列表,简称循环列表源码(JS模拟实现)包含了头指针以及尾指针的实现/** * @desc 循环链表 * * @au...
分类:
其他好文 时间:
2015-08-16 21:16:54
阅读次数:
136
队列不同于栈,它是先进先出,即先入队列的元素提取时也要先出队列。队列可以用数组实现也可以用链表实现,挺简单的,但是很有些情况下很有用。它的实现只要维持好队首和队尾指针就好了。下面是我实现的链表队列。
queue.h
#ifndef __QUEUE_H
#define __QUEUE_H
#include
#include
struct QueueNode;
struct queue;
...
分类:
编程语言 时间:
2015-08-11 23:29:13
阅读次数:
196
照例来说点废话,愿自己生一颗温柔细腻的心,这样女朋友也许一个眼神,一个微笑,我就知道如何做,可惜内心与外表一样粗糙,这一生有幸认识她,愿天下有情人终成眷属。 循环链表,顾名思义循环就好了,所以建一个线性表之后,在尾指针之后.next=first就好了,照例先建一个结构体(类似于C语言的结构体,...
分类:
编程语言 时间:
2015-08-11 15:31:43
阅读次数:
191
//_DataStructure_C_Impl:双端队列
#include
#include
#define QueueSize 8 //定义双端队列的大小
typedef char DataType;
typedef struct DQueue{ //双端队列的类型定义
DataType queue[QueueSize];
int end1,end2; //双端队列的队尾指针
}DQue...
分类:
其他好文 时间:
2015-08-06 07:10:43
阅读次数:
114
编码实现环状单向链表(尾指针直接指向头指针,中间没有空节点),去除连续的重复元素的操作。
比如:1(头)->2->2->3->3->1->1(头) 去除以后的结果是1->2->3,注意头尾的1也要去掉一个。
//时间复杂度为O(N)
//空间复杂度为O(1)
//代码如下:
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-08-05 22:20:05
阅读次数:
110
//_DataStructure_C_Impl:顺序队列
#include
#include
#define QueueSize 50
typedef char DataType;
typedef struct Squeue{ //顺序队列类型定义
DataType queue[QueueSize];
int front,rear; //队头指针和队尾指针
}SeqQueue;
//将顺序队列...
分类:
其他好文 时间:
2015-08-05 06:40:14
阅读次数:
121