自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wan198809的专栏

总结,总结,总结!好话要说三遍。

  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 LeetCode-----283Move Zeroes

LeetCode—–Move Zeroes链接: https://leetcode.com/problems/move-zeroes/题目: Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elem

2015-10-25 17:42:42 348

原创 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 444

原创 Leetcode----205Isomorphic Strings

Leetcode—–Isomorphic Strings链接:https://leetcode.com/problems/isomorphic-strings/题目: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the characters in s can

2015-10-24 20:26:58 406

原创 学习 《算法导论》第13章 红黑树 总结三

学习 《算法导论》第13章 红黑树 总结三今天把这编博客写完吧,这里学习红黑树的删除操作,前面学习了 红黑树的定义及旋转 红黑树的插入操作红黑树的删除操作也要结合二叉查找树的删除操作来学习。在一棵n个结点的红黑树中删除一个结点也是一样的,要花O(lgn)的时间,删除操作比插入还要复杂!!!!删除也分为两步:第一步,当成二叉查找树处理,删除一个结点;第二步,修复红黑树的性质;第一步:删除结点第一步

2015-09-20 21:50:50 451

原创 学习 《算法导论》第13章 红黑树 总结二

学习 《算法导论》第13章 红黑树 总结二在学习 《算法导论》第13章 红黑树 总结一中学习了红黑树的五个性质,红黑树的结构定义以及旋转。这节学习红黑树的插入和删除操作。红黑树的插入在一棵n个结点的红黑树中插入一个新结点的操作可以在O(lgn)时间内完成。红黑树的插入分为两步:第一步:把红黑树当成是一棵普通的二叉查找树,把新结点插入这棵二叉查找树;第二步:为保证红黑树的性质,将插入的新结点着色.第一

2015-09-20 21:26:52 1424

原创 学习 《算法导论》第13章 红黑树 总结一

学习 《算法导论》第13章 红黑树 总结一前面学习了二叉查找树,我们知道一棵高度为h的二叉查找树实现的任何一种动态集合操作,其时间都是O(h); 但若二叉查找树退化为n个结点的线性链后,则最坏情况运行时间为O(n); 下面说的红黑树能保证在最坏情况下,任何一种动态集合操作的运行时间为O(h);红黑树介绍红黑树是一种二叉查找树,但在每个结点上增加了一个存储位表示结点的颜色,可以是RED或BLACK;通

2015-09-20 19:10:55 1647

原创 学习《算法导论》 二叉查找树 总结

学习《算法导论》 二叉查找树 总结二叉查找树二叉查找树可以用链表结构来表示, 其中每个结点除了包括卫星数据外,还包括域left, right, parent; 它们分别指向结点的左儿子,右儿子和父结点. 二叉查找树的链表结构定义如下:typedef int ElemType;// 二叉树的链表结构typdef struct TreeNode{ ElemType data; st

2015-09-17 23:40:17 387

原创 关于单链表的几道题

关于单链表的几道题删除单链表中的重复元素思路:建立三个工作指针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 371

原创 学习 栈 总结

学习 栈 总结栈只限定在表尾进行插入和删除操作的线性表. 栈的插入操作,叫做入栈. 栈的删除操作叫做出栈. 大致如下图所示:栈的抽象数据类型Data 同线性表,元素具有相同的类型,相邻元素有前驱和后继关系.Operation InitStack(*S); DestroyStack(*S); ClearStack(*S); StackEmpty(*S);

2015-09-16 22:06:59 899

原创 学习队列 总结

学习队列 总结一队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 结构如下图所示:队列的抽象数据类型定义如下:ADT 队列(Queue)Data 同线性表,元素有相同的类型,相邻元素有前驱和后继Operation InitQueue(*Q); DestroyQueue(*Q); ClearQueue(*Q); QueueEmpty(*Q);

2015-09-16 21:20:11 590

原创 带头结点的单链表的操作 学习总结

带头结点的单链表的操作 学习总结首先给出单链表的存储结构定义如下:struct LNode{ Elemtype date; LNode* next;};typedef LNode* LinkList;下面是带头结点的单链表的基本操作:初始化// 构造一个空线性表Lvoid InitList(LinkList& L){ // 产生头结点,并使L指向该头结点 L

2015-09-15 21:04:27 582

原创 学习 单链表 总结二

学习 单链表 总结二—-单链表的头结点、头指针及单链表的初始化和遍历等头结点与头指针头结点即第一个结点,头指针是指向第一个结点的指针. 在单链表中,可以没有头结点,但是不能没有头指针. 下面是头结点与头指针的关系:// 定义结点的结构体typedef struct Node{ int data; struct Node* next;}Node, *LinkList;那么若定义:

2015-09-14 23:40:55 503

原创 学习 链表 总结一

学习 链表 总结一链表 (Linked List)是一种常见的基础数据结构,它的特点是用一组任意的存储单元存储线性表的数据元素,它在每个结点存储到下一个结点的指针。 使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销较大。 链表有很多中不同的类型:单向链表,

2015-09-10 22:55:50 487

原创 学习 线性表的顺序存储 总结一

学习 线性表的顺序存储 总结一线性表是最简单的一种数据结构了,也是最常用的一种。线性表的逻辑结构简单,便于实现和操作。线性表有以下两个特点: 1. 它首先是个序列,元素之前是有顺序的。数据元素之间的关系是一对一的,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的元素个数n定义为线性表的长度。线性表的顺序存储定义线性表的顺序存储:用一段地址连续的存储单元依次存储线性表的数

2015-09-10 22:21:01 815

原创 学习《算法导论》第十一章 散列表 总结二

学习《算法导论》第十一章 散列表 总结二本节学习散列表的两种实现方法:链接法和开放寻址法的代码实现.链接法hashsep.h#ifndef _HashSep_Htypedef int ElementType;typedef unsigned int Index;struct ListNode;typedef struct ListNode* Position;struct HashTbl;typ

2015-09-08 23:30:05 594

原创 学习《算法导论》第十一章 散列表 总结一

学习《算法导论》第十一章 散列表 总结一在很多应用中,都要用到一种动态集合结构,它仅支持INSERT, SEARCH和DELETE字典操作。而实现字典的一种有效数据结构就是散列表. 在最坏情况下,在散列表中,查找一个元素的时间与在链表中查找一个元素的时间相同,在最坏情况下都是Θ(n),但在实践中,散列技术的效率是很高的. 散列表是普通数组概念的推广. 但是对于数组来说,可以进行直接寻址,所以可以

2015-09-07 23:37:14 542

原创 学习《算法导论》第八章 计数排序 总结

学习《算法导论》第八章 计数排序 总结前面学习的排序算法都是基于比较的. 下面学习的计数排序不是基于比较的,代码中并没出现元素之前的比较. 当我们不采用基于比较排序的模型时,排序算法的下界Ω(nlgn)在这里就不适用了. 但计数排序作了某种假设,即假设输入的元素是由一个小范围内的整数构成的.计数排序概论计数排序有个前提就是假设n个输入元素中的每个元素都是介于0到k之间的整数. 计数排序的运行时间是Θ

2015-08-30 14:10:36 393

原创 学习《算法导论》第七章 快速排序 总结

学习《算法导论》第七章 快速排序 总结快速排序概论快速排序通常是用于排序的最佳选择, 这是因为它的平均性能非常好, 期望的运行时间为O(nlg n),且常数因子很小. 另外, 它还能够进行就地排序. 它的最坏运行时间为O(n^2).快速排序的思想快速排序和合并排序一样, 也采用了分治的思想. 分治, 之前学过, 有三个步骤:分解, 解决, 合并. 下面对A[p...r]讲述快速排序的思想:分解:A

2015-08-30 14:04:29 438

原创 学习《算法导论》第六章 堆排序 总结二

在《堆排序_学习总结一》中学习了堆的概念, 最大堆的性质, 以及如何保持最大堆性质、如何建立堆这两个的算法. 最后就是基于这两个算法学习了堆排序的算法. 接下来继续学习几个关于堆的算法. 堆作为一种数据结构, 也有一些基本操作:求堆中的最大值、在堆中插入关键字key、删除堆中的最大值、将堆中某个关键字增加到新的key等.下面分别学习这些算法. 以及由这些算法

2015-08-30 13:59:08 395

原创 学习《算法导论》第六章 堆排序 总结

学习《算法导论》第六章 堆排序 总结完全二叉树的概述一颗完全二叉树:树的每一层都是填满的,最后一层可能除外(最后一层是从一个结点的左子树开始填的).树的结点表示对于完全二叉树,给定一个结点的下标i,其父结点PARENT(i),左儿子LEFT(i),右二子RIGHT(i)的下标可通过下面简单计算出来:PARENT(i) return i / 2;LEFT(i) return 2 *

2015-08-29 22:38:33 389

原创 学习《算法导论》第二章 合并排序 总结

在上一节,学习了插入排序,插入排序使用的算法设计是增量方法. 而这一节我们学习另一种算法设计方法:分治法. 分治算法有一个优点:那就是很容易确定其运行时间. 分治法分治策略:将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些子问题,然后再合并其结果,就得到原问题的解.

2015-08-29 21:59:41 558

原创 学习《算法导论》第一章 插入排序 总结

学习《算法导论》第一章 插入排序 总结1. 算法入门 1.1 算法简介 1.2 算法分析 1.2.1 最坏情况分析2. 插入排序 2.1 插入排序的思想 2.2 插入排序算法 2.3 插入排序时间复杂度分析 2.4 插入排序代码实现

2015-08-29 20:27:57 622

原创 Data Structures and Other Objects Using C++ (Chapter 2) 学习笔记五

2.2 CONSTRUCTORS

2013-10-29 20:53:23 797

原创 Data Structures and Other Objects Using C++ (Chapter 2) 学习笔记四

Chapter 2   Abstract Data Types and C++ Classes2.1 CLASSES AND MEMBERS     A class is a new kind of data type. Each class that you define is a collection of data, and has the ability to include me

2013-10-28 11:15:36 1125

原创 Data Structures and Other Objects Using C++ (Chapter 1) 学习笔记三

1.2 RUNNING TIME ANALYSISTime analysisconsists of reasoning about an algorithm's speed.Does the algorithm work fast enough for my needs? How much longer does the method take when the input gets

2013-10-28 09:26:45 782

原创 Data Structures and Other Objects Using C++ (Chapter 1) 学习笔记二

Preconditions and Postconditions(先决条件和后置条件)    When you are using a function, you only need to think about what the function does. You need not think about how the function does its work.    For e

2013-10-27 19:12:11 808

原创 Data Structures and Other Objects Using C++ (Chapter 1) 学习笔记一

中文翻译为:数据结构——C++版(第四版)Michael Main,  Walter Savitch 著Chapter 1   The Phases of Software Development(软件开发的几个阶段)Preface One     This chapter illustrates(阐明) the phases of software development.    T

2013-10-26 15:55:00 1500

算法导论【经典】

不用说,每人一份。经典,想进入IT,就要看这书。

2013-10-18

名企公司的面试题

46家知名公司的历年面试题,对最近找工作的同学有帮助

2013-10-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除