一种数据结构 跳表skiplist
来源:互联网 发布:淘宝新品上架看不到 编辑:程序博客网 时间:2024/06/09 19:39
跳表是平衡树的一种替代的数据结构,但是和红黑树不相同的是,跳表对于树的平衡的实现是基于一种随机化的算法的,这样也就是说跳表的插入和删除的工作是比较简单的。
下载地址 : http://download.csdn.net/detail/hemmingway/4625042
测试程序
// test.cpp//#include <iostream>#include <iomanip>#include <cstdlib>#include <time.h>#include "skiplist.h"#include "TimeCounter.h"#define TIME_START CTimeCounter* pT = new CTimeCounter()#define TIME_END ShowTime(pT->GetExecutionTime())//////////////////////////////////////////////////////////////////////////// Show execution time (ms)void ShowTime(__int64 nTime){std::cout << "========================================" << std::endl;std::cout << " Total time: ";std::cout << std::fixed << std::setprecision(1) << std::setw(6);std::cout << nTime;std::cout << " ms" << std::endl << std::endl;//printf("Usage time: %I64d millisecond\n\n", nTime); //在g++中对应的是<stdint.h> int64_t, 应该用%lld输出}int main(){int count = 10, i;SkipList sl;srand((unsigned)time(NULL));std::cout<<"### Function Test ###\n\n";std::cout<<"\n=== Init Skip List ===\n\n";sl.Init();for ( i = 0; i < count; i++) {sl.Insert(i);}std::cout<<"\n=== Print Skip List ===\n\n";sl.Print();printf("\n=== Search Skip List ===\n\n");TIME_START;for (i = 0; i < count; i++) {int value = rand()%(count+10);sl.Search(value);}TIME_END;std::cout<<"\n=== Delete Skip List ===\n\n";char buf[256], *p = buf;for (i = 0; i < count+10; i+=2) {sprintf_s(buf, "Delete[%d]:%s\n", i, sl.Delete(i) ? "SUCCESS":"NOT FOUND");std::cout<<buf;}std::cout<<"\n\n";sl.Print();sl.Free();//或者Ctrl+F5调试getchar();}
- 一种数据结构 跳表skiplist
- 数据结构 跳表skiplist
- 扩展数据结构--跳表(SkipList)
- 高级数据结构-SkipList
- 【数据结构】跳跃列表 SkipList
- SkipList数据结构学习
- SkipList 跳表
- SkipList跳表
- 跳表SkipList
- SkipList 跳表
- SkipList 跳表
- 跳表SkipList
- SkipList 跳表
- SkipList 跳表
- SkipList 跳表
- SkipList 跳表
- SkipList 跳表
- 跳表SkipList
- 关于android分支无法下载的问题,revision froyo in manifests not found
- VMware中的几种网络连接方式
- 键盘ESC键前世今生:曾推动70和80年代PC革命
- delphi的Public,Private,Protected,Published作用域
- HashMap和Hashtable源代码级别的区别
- 一种数据结构 跳表skiplist
- minigui在海思解决方案(hi3515芯片)上的移植过程(有加个人修改)
- 安装最新版本的CMake
- Ubuntu 下重启网络的方法
- Opencv+VS2008 项目编译错误 无法解析的外部符号
- 各种网页错误代码
- Android之自制的分页表格控件
- 云计算基础架构建设一席谈(六)
- 宽字符处理