数据结构
让我们荡起双脚
信言不美,美言不信。
善者不辩,辩者不善。
知者不博,博者不知。
圣人不积,既以为人己愈有,既以与人己愈多。
天之道,利而不害;圣人之道,为而不争。
展开
-
平衡二叉树
#include <iostream> #include <stdlib.h> #include <stack> using namespace std;template<typename Type> struct VALNode { int bf; Type data; struct VALNode *left; struct VALNode *right;原创 2015-05-21 13:23:01 · 693 阅读 · 0 评论 -
数据结构:define实现链表
#include typedef int af[]; typedef struct Node { struct Node *next; int data; Node(int d = int()) :next(NULL), data(d){} }Node; Node* first = NULL; #define LIST(ar,n) \ {原创 2015-08-11 12:22:13 · 1021 阅读 · 0 评论 -
智力题:比赛问题
宿舍内5个同学一起玩对战游戏。每场比赛有一些人作为 红方,另一些人作为蓝方。请问至少需要多少场比赛, 才能使任意两个人之间有一场红方对蓝方和蓝方对红 方的比赛?原创 2015-07-31 11:32:09 · 1211 阅读 · 0 评论 -
数据结构:根据有序链表构造平衡二叉树
#include #include using namespace std; struct Node { int data; Node* next; Node(int d = int()):data(d){} }; class List { friend class T; public: List():first(NULL){} void Insert(int a[],int原创 2015-08-27 20:40:15 · 1280 阅读 · 0 评论 -
数据结构:haffman树
#include <iostream> using namespace std;struct haffNode { int data; haffNode *left; haffNode *right; haffNode *parent; haffNode(int d = int()) :data(d), left(NULL), right(NULL), par原创 2015-08-28 19:37:36 · 877 阅读 · 0 评论 -
数据结构:二叉树(前,中,后,层次)非递归遍历。
#include <iostream> #include <stack> #include <map> #include <queue> #include <string.h> using namespace std;struct Node { char data; Node *left; Node *right; Node(char d = char()):data原创 2015-08-16 22:03:38 · 940 阅读 · 0 评论 -
数据结构:倒排索引
#include <iostream> #include <map> #include <vector> #include <string.h> using namespace std; //倒排索引,以属性值来存储关键字。//找出两个人相似度最高的人,相似度=(相同爱好数)/总的爱好数。 struct Node { string like; int count; Node(原创 2015-08-17 13:12:06 · 1887 阅读 · 0 评论 -
数据结构:快状链表(数组链表联合)
#include <iostream> #define _MAX_ 10 using namespace std; //块状链表。struct MyNode { //按理说每块数据的数组长度应该是根号N到2倍的根号N之间,暂时 //我为了测试就使用100个左右的数据。 int *data; int size;//大小。 int currentIndex;//当原创 2015-08-17 00:56:16 · 946 阅读 · 0 评论 -
数据结构:大堆
#include using namespace std; class Heap { public: Heap() :size(0), arr(NULL){} void Insert(int a[],int n) { arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = a[i]; } size = n原创 2015-08-16 17:03:16 · 674 阅读 · 0 评论 -
笔试题:再hash法
#include<iostream> #include <string.h> #define DefaultSize 13 using namespace std;struct PeopleNode { int flags; char *name; PeopleNode():flags(0),name(new char[20]){} };class Hash { public原创 2015-09-12 00:20:43 · 760 阅读 · 0 评论 -
数据结构:单链表
//单链表// #include <iostream> #include <stdlib.h> using namespace std;template<typename Type> struct Node { Type data; Node *next; Node(Type d = Type()) :data(d), next(NULL){} }; template<typ原创 2015-09-30 22:43:45 · 543 阅读 · 0 评论 -
数据结构:中序线索二叉树
//所谓线索二叉树无非是为了让原本指向NULL的节点指向一个具体的 //已经存在的节点,逻辑上实现指针的无空指向的实现,下面是我中 //序线索二叉树的实现。还是把先序线索二叉树与后序线索分开来写吧。#include<iostream> using namespace std;template<typename Type> struct Node { Type data; bool r原创 2015-08-07 16:32:51 · 1269 阅读 · 0 评论 -
数据结构:hash桶结构
#include <iostream> #include <stdlib.h> #define _SIZE_ 7 using namespace std;template<typename Type> struct Node { Type data; Node *next; Node(Type d = Type()) :data(d), next(NULL){} };temp原创 2015-08-09 01:20:01 · 4179 阅读 · 1 评论 -
C++红黑树的完整实现
#include <iostream>using namespace std;typedef enum Color { RED, BLACK, }Color; template<typename Type> struct RbNode { Color color; Type data; RbNode<Type> *parent; RbNode<Type原创 2015-05-22 12:19:47 · 1276 阅读 · 0 评论 -
线索二叉树
#include <iostream> #include <string.h> using namespace std;template<typename Type> struct ThreadNode { Type data; struct ThreadNode<Type> *left; struct ThreadNode<Type> *right; bool lta原创 2015-05-19 15:36:11 · 616 阅读 · 0 评论 -
C++双向循环链表
#include <iostream> using namespace std;template<typename Type> struct Node { Node<Type> *next; Node<Type> *prve; Type data; Node(Type d = Type()):data(d),next(NULL),prve(NULL){} };t原创 2015-05-23 13:17:52 · 803 阅读 · 0 评论 -
C++链表逆序打印节点
#include <iostream> #include <stack> using namespace std; template<typename Type> struct Node { Type data; Node *next; Node(Type d = Type()):data(d),next(NULL){} };template<typename Type> c原创 2015-05-24 10:43:53 · 979 阅读 · 0 评论 -
C++胜者树
#include <iostream> #define MAX_VALUE 0x7fffffff using namespace std; //在这里我先反思一下,不知道怎么搞的,这个算法耗费我3个小时,惨不忍睹。 void DealWhat(int b[],int n,int flags)//每一次在n位置调整该位置的与子树的大小关系。 { int left = 2 * n + 1;原创 2015-06-09 01:47:23 · 1788 阅读 · 7 评论 -
C++根据前序和中序构造二叉树
#include <iostream> #include <string.h> using namespace std;template<typename Type> struct Node { Type data; Node<Type> *left; Node<Type> *right; Node(Type d = Type()):data(d),left(NULL原创 2015-05-25 17:05:32 · 3134 阅读 · 1 评论 -
C++归并算法
#include <iostream> using namespace std;void DealWhat(int ar[],int start,int end,int b[]) { int mid = (start + end) / 2; int i = start; int j = mid+1; int k = start; //将start到en原创 2015-06-09 21:43:01 · 937 阅读 · 0 评论 -
C++线索二叉树求最矮公共父亲节点
#include <iostream> #include <stdlib.h> #include <stack> using namespace std;class Expection//一个自定义的异常类 { public: void Null_Thing()//空指针异常. { cout<<"Expection!!!,this is null"<<e原创 2015-05-24 22:09:03 · 667 阅读 · 0 评论 -
C++字典树
#include <iostream> #include <vector> #define _MAX_ 256using namespace std;struct Node { Node *next[_MAX_]; int count[_MAX_];//计数,看这个字符出现的次数。 Node() { int i=0; for (; i原创 2015-07-09 09:14:56 · 1199 阅读 · 0 评论 -
C++二叉树翻转
#include <iostream> using namespace std;template<typename Type> struct Node { Type data; Node *left; Node *right; Node(Type d = Type()) :data(d), left(NULL), right(NULL){} }; template<t原创 2015-06-12 21:09:21 · 1240 阅读 · 0 评论 -
来腾讯已经一年了,大家加油。
转眼已经到腾讯一年了,我依然每天坚持写自己的总结 希望大家都可以每天加油,每天都是一个崭新的开始,都是一个新的起点。原创 2016-08-30 19:57:32 · 1079 阅读 · 3 评论