数据结构
让我们荡起双脚
信言不美,美言不信。
善者不辩,辩者不善。
知者不博,博者不知。
圣人不积,既以为人己愈有,既以与人己愈多。
天之道,利而不害;圣人之道,为而不争。
展开
-
平衡二叉树
#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 · 1025 阅读 · 0 评论 -
智力题:比赛问题
宿舍内5个同学一起玩对战游戏。每场比赛有一些人作为 红方,另一些人作为蓝方。请问至少需要多少场比赛, 才能使任意两个人之间有一场红方对蓝方和蓝方对红 方的比赛?原创 2015-07-31 11:32:09 · 1212 阅读 · 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 · 1282 阅读 · 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 · 878 阅读 · 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 · 941 阅读 · 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 · 1888 阅读 · 0 评论 -
数据结构:快状链表(数组链表联合)
#include <iostream>#define _MAX_ 10using namespace std;//块状链表。struct MyNode{ //按理说每块数据的数组长度应该是根号N到2倍的根号N之间,暂时 //我为了测试就使用100个左右的数据。 int *data; int size;//大小。 int currentIndex;//当原创 2015-08-17 00:56:16 · 948 阅读 · 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 13using namespace std;struct PeopleNode{ int flags; char *name; PeopleNode():flags(0),name(new char[20]){}};class Hash{public原创 2015-09-12 00:20:43 · 763 阅读 · 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 · 544 阅读 · 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_ 7using 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 · 4181 阅读 · 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 · 617 阅读 · 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 · 805 阅读 · 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 · 982 阅读 · 0 评论 -
C++胜者树
#include <iostream>#define MAX_VALUE 0x7fffffffusing namespace std;//在这里我先反思一下,不知道怎么搞的,这个算法耗费我3个小时,惨不忍睹。void DealWhat(int b[],int n,int flags)//每一次在n位置调整该位置的与子树的大小关系。{ int left = 2 * n + 1;原创 2015-06-09 01:47:23 · 1789 阅读 · 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 · 3139 阅读 · 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 · 938 阅读 · 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 · 670 阅读 · 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 · 1206 阅读 · 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 · 1245 阅读 · 0 评论 -
来腾讯已经一年了,大家加油。
转眼已经到腾讯一年了,我依然每天坚持写自己的总结 希望大家都可以每天加油,每天都是一个崭新的开始,都是一个新的起点。原创 2016-08-30 19:57:32 · 1080 阅读 · 3 评论