根据代码来分析链表的操作 eg: 1.定义一个结构体,并定义一个表头指针 2.编写main函数 main函数主要接收外面传进来的参数,作出一系列操作。 l:显示所有的名字 a:添加一个名字 d:删除一个名字 x:退出操作 3.完善各个函数的编写 3.1 add_one_name和add_name函数 ...
分类:
其他好文 时间:
2016-12-11 22:52:01
阅读次数:
182
二叉查找树(BST)是二叉树的一个重要的应用,它在二叉树的基础上加上了这样的一个性质:对于树中的每一个节点来说,如果有左儿子的话,它的左儿子的值一定小于它本身的值,如果有右儿子的话,它的右儿子的值一定大于它本身的值。 二叉查找树的操作一般有插入、删除和查找,这几个操作的平均时间复杂度都为O(logn ...
分类:
其他好文 时间:
2016-12-03 20:57:57
阅读次数:
239
散列表的具体实现就不多做介绍了,就是一个数组,每个下标存储的是碰撞的元素的链表头指针,如下图所示: 下面直接研究对用链接法散列的分析: 给定一个能存放n个元素的、具有m个槽位的散列表T,定义T的装载因子α为n/m,即一个链中平均存储的元素数。 用链接法散列的最坏情况性能很差:所有的n个关键字都散列到 ...
分类:
其他好文 时间:
2016-12-03 20:53:12
阅读次数:
235
1.概述: 数据结构:哈希表 插入时间复杂度:O(1) 删除时间复杂度:O(1) 查找时间复杂度: 优点: 哈希表的操作速度比较快,如插入、删除的时间复杂度都是常量O(1),可以在一秒内查找上千条记录 哈希表的编程实现相对容易 缺点: 哈希表不能被填满。哈希表被基本填满的时候,性能会急剧下降,所以为 ...
分类:
编程语言 时间:
2016-12-03 14:38:25
阅读次数:
145
栈的链式存储结构,我们一般简称为“链栈”。由于单链表有头指针,而栈顶指针也是必须要有的,所以我们通常把栈顶放在单链表的头部,有了栈顶在头部,单链表中比较常用的头结点就失去了意义。通常对于链栈来说,是不需要头结点的,也基本不存在栈满的情况,除非内存已经没有使用的空间了。但对于空栈来说,链表原定义是头指 ...
分类:
其他好文 时间:
2016-12-03 01:55:56
阅读次数:
318
AVL 树的插入、删除、旋转归纳 参考链接: http://blog.csdn.net/gabriel1026/article/details/6311339 1126号注:先前有一个概念搞混了: 节点的深度 Depth 是指从根节点到当前节点的长度; 节点的高度 Height 是指从当前节点向下, ...
分类:
其他好文 时间:
2016-11-28 23:05:52
阅读次数:
276
参考链接: http://blog.csdn.net/gabriel1026/article/details/6311339 之前简单了解过 AVL 树,知道概念但一直没动手实践过。Now AVL 树是二叉搜索树的一种。二叉搜索树的规则就是:每个节点的 left child 都比自己小,right ...
分类:
其他好文 时间:
2016-11-24 07:03:34
阅读次数:
351
读完本文你将了解到:
什么是二叉排序树 Binary Sort Tree BST
二叉排序树的关键操作
查找
插入
删除
运行代码测试
一道面试题
总结
Thanks
我们知道,二分查找可以缩短查找...
分类:
编程语言 时间:
2016-11-20 19:38:24
阅读次数:
325
在一个多线程程序中,如果共享资源同时被多个线程使用,就有可能会造成多线程问题,这主要取决于针对该资源的某项操作是否是线程安全的。例如,.Net中的dictionary就是一个完全线程不安全的数据结构,对于dictionary的插入、删除都有可能带来多线程问题,这主要是由于dictionary的内部实 ...
分类:
编程语言 时间:
2016-11-20 16:04:42
阅读次数:
318