数据结构
文章平均质量分 51
gausser
不要忘了学习
展开
-
学习 线性表的顺序存储 总结一
学习 线性表的顺序存储 总结一线性表是最简单的一种数据结构了,也是最常用的一种。线性表的逻辑结构简单,便于实现和操作。线性表有以下两个特点: 1. 它首先是个序列,元素之前是有顺序的。数据元素之间的关系是一对一的,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的元素个数n定义为线性表的长度。线性表的顺序存储定义线性表的顺序存储:用一段地址连续的存储单元依次存储线性表的数原创 2015-09-10 22:21:01 · 877 阅读 · 0 评论 -
学习 《算法导论》第13章 红黑树 总结三
学习 《算法导论》第13章 红黑树 总结三今天把这编博客写完吧,这里学习红黑树的删除操作,前面学习了 红黑树的定义及旋转 红黑树的插入操作红黑树的删除操作也要结合二叉查找树的删除操作来学习。在一棵n个结点的红黑树中删除一个结点也是一样的,要花O(lgn)的时间,删除操作比插入还要复杂!!!!删除也分为两步:第一步,当成二叉查找树处理,删除一个结点;第二步,修复红黑树的性质;第一步:删除结点第一步原创 2015-09-20 21:50:50 · 473 阅读 · 0 评论 -
学习 《算法导论》第13章 红黑树 总结二
学习 《算法导论》第13章 红黑树 总结二在学习 《算法导论》第13章 红黑树 总结一中学习了红黑树的五个性质,红黑树的结构定义以及旋转。这节学习红黑树的插入和删除操作。红黑树的插入在一棵n个结点的红黑树中插入一个新结点的操作可以在O(lgn)时间内完成。红黑树的插入分为两步:第一步:把红黑树当成是一棵普通的二叉查找树,把新结点插入这棵二叉查找树;第二步:为保证红黑树的性质,将插入的新结点着色.第一原创 2015-09-20 21:26:52 · 1521 阅读 · 0 评论 -
学习 《算法导论》第13章 红黑树 总结一
学习 《算法导论》第13章 红黑树 总结一前面学习了二叉查找树,我们知道一棵高度为h的二叉查找树实现的任何一种动态集合操作,其时间都是O(h); 但若二叉查找树退化为n个结点的线性链后,则最坏情况运行时间为O(n); 下面说的红黑树能保证在最坏情况下,任何一种动态集合操作的运行时间为O(h);红黑树介绍红黑树是一种二叉查找树,但在每个结点上增加了一个存储位表示结点的颜色,可以是RED或BLACK;通原创 2015-09-20 19:10:55 · 1706 阅读 · 0 评论 -
学习《算法导论》 二叉查找树 总结
学习《算法导论》 二叉查找树 总结二叉查找树二叉查找树可以用链表结构来表示, 其中每个结点除了包括卫星数据外,还包括域left, right, parent; 它们分别指向结点的左儿子,右儿子和父结点. 二叉查找树的链表结构定义如下:typedef int ElemType;// 二叉树的链表结构typdef struct TreeNode{ ElemType data; st原创 2015-09-17 23:40:17 · 406 阅读 · 0 评论 -
学习队列 总结
学习队列 总结一队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 结构如下图所示:队列的抽象数据类型定义如下:ADT 队列(Queue)Data 同线性表,元素有相同的类型,相邻元素有前驱和后继Operation InitQueue(*Q); DestroyQueue(*Q); ClearQueue(*Q); QueueEmpty(*Q);原创 2015-09-16 21:20:11 · 614 阅读 · 0 评论 -
关于单链表的几道题
关于单链表的几道题删除单链表中的重复元素思路:建立三个工作指针p, q, r,然后p遍历整个链表,p每到一个结点,q就从这个结点往后遍历,并与p的数值比较,相同的话就free掉那个结点. 代码:// 删除单链表中重复结点的算法LinkList RemoveDupNode(LinkList L){ LinkList p, q, r; p = L->next; // p 遍历原创 2015-09-17 21:57:29 · 390 阅读 · 0 评论 -
学习 栈 总结
学习 栈 总结栈只限定在表尾进行插入和删除操作的线性表. 栈的插入操作,叫做入栈. 栈的删除操作叫做出栈. 大致如下图所示:栈的抽象数据类型Data 同线性表,元素具有相同的类型,相邻元素有前驱和后继关系.Operation InitStack(*S); DestroyStack(*S); ClearStack(*S); StackEmpty(*S);原创 2015-09-16 22:06:59 · 935 阅读 · 0 评论 -
学习 单链表 总结二
学习 单链表 总结二—-单链表的头结点、头指针及单链表的初始化和遍历等头结点与头指针头结点即第一个结点,头指针是指向第一个结点的指针. 在单链表中,可以没有头结点,但是不能没有头指针. 下面是头结点与头指针的关系:// 定义结点的结构体typedef struct Node{ int data; struct Node* next;}Node, *LinkList;那么若定义:原创 2015-09-14 23:40:55 · 548 阅读 · 0 评论 -
带头结点的单链表的操作 学习总结
带头结点的单链表的操作 学习总结首先给出单链表的存储结构定义如下:struct LNode{ Elemtype date; LNode* next;};typedef LNode* LinkList;下面是带头结点的单链表的基本操作:初始化// 构造一个空线性表Lvoid InitList(LinkList& L){ // 产生头结点,并使L指向该头结点 L原创 2015-09-15 21:04:27 · 612 阅读 · 0 评论 -
学习 链表 总结一
学习 链表 总结一链表 (Linked List)是一种常见的基础数据结构,它的特点是用一组任意的存储单元存储线性表的数据元素,它在每个结点存储到下一个结点的指针。 使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销较大。 链表有很多中不同的类型:单向链表,原创 2015-09-10 22:55:50 · 508 阅读 · 0 评论 -
LeetCode---206reverse-linked-list
LeetCode—reverse-linked-list链接: https://leetcode.com/problems/reverse-linked-list/题目: Reverse a singly linked list 单链表反转方法一: 每次都将第二个结点提到最前面,Solution:/** * Defini原创 2015-10-25 12:25:08 · 464 阅读 · 0 评论