文章分类 -  data struct

studing is a job
RedBlack
摘要:花了2天的时间阅读,但是感觉还是有点错误,在里面。个人感觉,里面的nil和NULL处理有点问题。特别是在要求父节点,祖父节点,叔叔节点,兄弟节点时出问题。#include<iostream>using namespace std;template<class T>struct Node{T value;Node<T> *parent;Node<T> *left;Node<T> *right;int flag;//zero is black ,and one is red};template<class T>class Re 阅读全文
posted @ 2012-09-17 15:04 不懂自然语言 阅读(141) 评论(0) 推荐(0)
SearchTree
摘要:原本是想学习红黑树的,但是红黑树的基础是二叉排序树,所以先温习下二叉排序树。重点在于:二叉排序树的删除和增加。在这里没有什么难点,因此省略#include<iostream>using namespace std;template<class T>struct Node{ T key; Node<T> *parent; Node<T> *left; Node<T> *right;};template<class T>class SearchTree{ private: Node<T> *root; public 阅读全文
posted @ 2012-09-14 16:56 不懂自然语言 阅读(214) 评论(0) 推荐(0)
skipList
摘要:1.废话 我怀念的C++,好久不见。是晚上12点开始看跳表的,只是觉得这么牛逼的数据结构为什么本科没有学到呢?终于搞定。2.introduction 许多人应该对数据结构中的链表有所印象。记得那时候老师说的最多的线性表寻址方便,增删操作麻烦,而链表正好相反。那么有没有一种数据结构能得两者之精华呢?跳表就是牺牲空间换时间的最好case,寻址操作是log(n),增减又方便。和普通的链表分别在于,他储存的并不仅仅是后面一个节点的地址,而是根据一个得到的随机数的大小来决定储存的数量。个人观点是链表的头节点的高度就是跳表的深度(深度会改变)。关于概念部分,不再引述,读者可以随意google。3.co.. 阅读全文
posted @ 2012-09-07 00:02 不懂自然语言 阅读(123) 评论(0) 推荐(0)