数据结构和算法
倔强的攻城狮
道路总不是那么好走,心向往之,倔强的头颅永不放弃,奔向理想之巅
展开
-
链表处理-单链表反转
链表结构和构建#include <iostream> #include <stack> #include <vector> #include <string.h> #include <stdlib.h> #include <string> struct ListNode { int val; ListNode *next; ListNode(int x) :原创 2015-11-03 20:17:40 · 551 阅读 · 0 评论 -
散列表实现
基本思想散列表的数据结构可以看作是包含有关关键字的具有固定大小的数组。假设这个数组(hash表)的大小是tableSize,那么我们可以把数据按照从0-tableSize-1的键值来存放,数据通过hash来映射不同的键值。这个映射就叫做散列函数(hash function),理想情况下它应该运算简单并且应该保证任何两个不同的关键字映射到不同的单元。不过,数据很多的情况下,这基本上是不可能的,不过可以原创 2015-11-06 09:18:18 · 484 阅读 · 0 评论 -
排序算法之归并排序
题目描述利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 给定一个string iniString为待压缩的串(长度小于等于3000),保证串内字符均由大小写英文字母组成,返回一个string,为所求的压缩后或未变化的串。 测试样例 “aabcccccaaa”原创 2015-11-07 21:46:31 · 349 阅读 · 0 评论 -
冒泡排序改进版
思路一般的冒泡排序主要是比较和数据交换,一趟过后,把最大的数据排到最后,循环执行。有时在进行若干遍的遍历比较后,数据已经有序,再循环比较已经没有意义,而且消耗时间,这时候可以引入一个标志变量flag来处理,如果没有交换,就退出循环。代码void bubbleSort(int array[], int num) { int flag= 0; int i = 0; int j =原创 2015-11-10 17:40:33 · 862 阅读 · 0 评论