数据结构
文章平均质量分 77
DanW
这个作者很懒,什么都没留下…
展开
-
数据结构链表——双链表
相对于单链表而言,双链表多了一个指向前方的指针,要注意的是头节点的前向指针始终为空。与单链表一致的是,判断双链表是否为空,都是通过判断头节点的下一个节点是否为空来判断的。双链表的操作与单链表的操作略有不同,主要是在插入操作和删除操作部分,有些额外的指针需要处理,另外特殊情况也需要考虑到,比如插入/删除之前链表为空。代码如下:#include#includestruct Lis原创 2015-07-24 22:58:25 · 451 阅读 · 0 评论 -
数据结构之链表
链表的实现以及链表中的常用操作代码如下:原创 2015-07-24 22:48:21 · 269 阅读 · 0 评论 -
数据结构链表之单循环链表
在这里,也设置一个头指针。对于有着头指针的单循环链表L,判断L为空的条件为L->next == L,这是与单链表与循环链表不一样的地方。除此之外,链表的最后一个节点指向头结点。要注意的是,对循环链表进行操作的时候,需要注意链表为空的情况。常用操作的代码为://循环列表#include#includestruct List{ int val; List *next;原创 2015-07-27 21:28:49 · 702 阅读 · 0 评论 -
数据结构链表之循环双链表
对于有头结点的双链表L,当L为空时,L->pre == L && L->next == L;对循环双链表的插入操作,需要考虑到链表为空的特殊情况;对循环上链表的删除操作,需要考虑到被删除元素为链表中最后一个元素的特殊情况。具体代码如下:#include#includestruct List{ int val; List* pre; List* next;};Lis原创 2015-07-27 22:14:42 · 397 阅读 · 0 评论 -
二叉树
对于二叉树的操作通常采用迭代的方法。常用二叉树的结构一般为:[cpp] view plaincopytypedef struct TreeNode { elemtype val; struct TreeNode *left; struct TreeNode *right; }原创 2015-08-28 16:49:17 · 401 阅读 · 0 评论 -
八大内部排序算法
八大内部排序包括:l 插入排序:直接插入排序希尔排序(又称增量排序)l 选择排序:简单选择排序堆排序l 交换排序:冒泡排序快速排序l 归并排序l 基数排序(又称桶排序) 排序算法解析:1、 直接插入排序与希尔排序直接排序与希尔排序同属于插入排序,不一样的是,直接排序每次将tmp元素与前面所有的元素进行比较,直到到第一个元素或者当原创 2015-08-15 13:45:14 · 504 阅读 · 0 评论 -
优先队列
优先队列一般是通过一个二叉堆(简称“堆”)表现出来的,由于这个二叉堆的结构是一个完全二叉树,因此在实际当中通常采用数组结构来实现一个优先队列,以达到更快的处理效果以及避免内存的申请和释放消耗大量的时间。优先队列的基本操作主要是初始化堆、插入元素、删除元素以及寻找最值。使用数组实现的二叉堆结构声明为:typedef int elemtype;typedef struct biHeap原创 2015-08-31 20:36:29 · 391 阅读 · 0 评论