摘要:静态查找表只做查询的操作的查找表动态查找表:若在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已存在的某个数据元素顺序查找:从开头一个个比较,直到查找到关键字或者到达末尾平均查找长度(ASL)=(n+1)/2int search(int a[] , int n , int key){...
阅读全文
摘要:什么是哈希表?哈希表就像一本书的目录,章节相当于关键字,通过对应的页码可以直接定位章节的位置。哈希表用一维数组保存关键字的内存地址,数组的长度为哈希表的表长。通过哈希函数求出哈希值定位到数组的下标,从而取出关键字的内存地址进行访问。优点:查询速度快,O(1)缺点:哈希表基于数组,不易扩充,而且冲突不...
阅读全文
摘要:快速排序:以第一个元素为基准,将待排序的区间分成2个子区间。将小于等于基准的元素放在左区间,大于等于基准的元素放在基右区间。对于左右子区间,递归调用前面的操作。如 5、7、7、1、3设low指向5,high指向3,设置5为基准。从hign开始向左寻找第一个小于5的元素,所以选择3将high所指向的3...
阅读全文
摘要:冒泡排序:如 9,8,7,6,5,4,3现要递增排序,冒泡排序的思想是比较相邻元素的大小,将大的放在后面。经过一系列比较后,最大的元素被放在最后。第一轮:9,8,7,6,5,4,39和8进行比较,8 a[j+1]){ int temp; temp = a[j]; a[j]=a[j+...
阅读全文
摘要:原文地址:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/27/1766236.html这篇将是最有难度和挑战性的一篇,做好心理准备!十、二叉查找树(BST)前一篇介绍了树,却未介绍树有什么用。但就算我不说,你也能想得到,看我们Windows的...
阅读全文
摘要:1、基本术语:度:有两种度“结点的度”与“树的度”。结点的度指的是一个结点子树的个数;树的度是指树中结点度的最大值。叶子结点:指的是没有子树的结点。层:树是有层次的,一般根结点为第0层。规定根结点到某结点的路径长度为该结点的层数。深度:树中结点的最大层数兄弟:同一双亲的结点,互为兄弟堂兄弟:双亲在同...
阅读全文
摘要:#include using namespace std;//队列结点类template class QueueNode{ private: T data; //结点数值部分 QueueNode * next; //指向下一结点 public: QueueNode(T d=0 , Queue...
阅读全文
摘要:队列:一端进行插入,另一端进行删除的线性结构,具有先进先出性。利用数组来实现队列将面临“假溢出”的情况,如下图所示:front:永远指向队首元素,队首在本文中是允许删除元素的一端rear:永远指向队尾元素,队尾在本文中是允许插入元素的一端所以引出循环队列,循环队列简单来说就是当rear=n时,将re...
阅读全文
摘要:#include using namespace std;//栈结点类template class stackNode{ private: T data; //结点数据部分 stackNode *next; //指向下一个结点 public: //构造函数,初始化成员变量 stackNode...
阅读全文
摘要:#include using namespace std;template class stack{ private: int top; //栈顶指针 int maxLen; //栈最大长度 T *data; //用数组来创建栈 public: stack(int top_ = -1 ,...
阅读全文
摘要:#include using namespace std;template class list{ private: int maxLen; //顺序表能允许的最大长度 int num; //当前表中的元素个数 T *data; //保存T类型数组首地址 public: list(in...
阅读全文
摘要:#include #include //结点模板类template class node{ private: t1 data1; //数据成员data1 t2 data2; //数据成员data2 node *next; //后继结点指针 public: node(t1 da1...
阅读全文