算法
稳场孤王
每日一算法,加强学习
展开
-
哈希表的C实现(一)
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。具体的介绍网上有很详细的描述,如闲聊哈希表 ,这里就不再累述了;哈希表在像Java、C#等语言中是与生俱来的。可是在C的世界中,似乎只有自己动手,丰衣足食;在网上google了一把,大致有几个版本,我会一一来分析转载 2015-05-09 16:05:05 · 465 阅读 · 0 评论 -
单向链表创建、插入、删除
// ListReverse.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;typedef struct list_Node{ int data; struct list_Node *next;}Node;int reverseList(Node **head原创 2015-08-30 00:11:16 · 279 阅读 · 0 评论 -
二叉树创建、销毁、按照分层在控制台显示、计算二叉树深度等等
// BinaryTree.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include#includeusing namespace std;int calculateLayer(int num);//二叉树结点结构typede原创 2015-08-30 19:15:42 · 267 阅读 · 0 评论 -
快速排序算法C++
它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程原创 2015-09-01 08:55:50 · 329 阅读 · 0 评论 -
设计包含min函数的栈
定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数 min、push以及 pop 的时间复杂度都是 O(1)。源码:// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include原创 2015-09-03 16:34:02 · 206 阅读 · 0 评论 -
求子数组的最大和
输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。// ConsoleAppli原创 2015-09-03 17:12:31 · 211 阅读 · 0 评论 -
输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。//二叉树结点结构typedef struct Node{ int data; struct Node *Left; struct Node *Right;}ListNode;//算法一ListNode* ConvertNod原创 2015-09-03 12:44:25 · 527 阅读 · 0 评论 -
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef 左旋转 2 位得到字符串 cdefab。请实现字符串左旋转的函数。要求时间对长度为n 的字符串操作的复杂度为 O(n),辅助内存为O(1)。源码:// ConsoleApplication5.cpp : 定义控制台应用原创 2015-09-06 15:46:08 · 864 阅读 · 0 评论 -
二叉树各种遍历
【简介】树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2转载 2015-09-07 09:52:47 · 225 阅读 · 0 评论