树的存储结构 双亲表示法孩子表示法:(a)多重链表(链表中每个指针指向一棵子树的根结点);(b)把每个跟结点的孩子结点排列起来,看成一个线性表,且以单链表做存储结构.且N个头指针也组成一个线性表.孩子兄弟表示法://二叉树表示法或二叉链表表示法以二叉链表做树的存储结构,链表中结点的两个链域分别指向该...
分类:
其他好文 时间:
2015-04-04 12:00:12
阅读次数:
122
有一个单链表,提供了头指针和一个结点指针,设计一个函数,在 O(1)时间内删除该结点指针指向的结点。众所周知,链表无法随机存储,只能从头到尾去遍历整个链表,遇到目标节点之后删除之,这是最常规的思路和做法。如图所示,删除结点 i,那么只需找到 i 的前驱 h,然后连 h 到 j,再销毁i 即可。虽然可...
分类:
其他好文 时间:
2015-04-03 20:56:24
阅读次数:
131
泛型 一、常见数据结构:栈,队列,链表,数组,树,图,堆…… 栈:先进后出--压栈、弹栈 队列:先进先出 数组:存储多个同一种元素,元素有编号【数组插入/删除数据】 查询快,增删慢 链表:把一些结点通过链子链接起来的数据结构。 结点:由地址(指针)域和数值域组成 增删快,查询慢 二、List三个子类...
分类:
编程语言 时间:
2015-04-01 23:43:59
阅读次数:
188
将一个排好序的数组中重复的数字删除 思路:维护头和尾指针,头指针始终指向最后一个不重复的数字,尾指针不断向数组尾部探索找到不重复的值之后将其拷贝到头指针 class Solution {public: int removeDuplicates(int A[], int n) { if (n <= 1...
分类:
其他好文 时间:
2015-04-01 11:12:38
阅读次数:
143
T-SQL组成DML(数据操作语言DataManipulationLanguage)查询、插入、删除和修改数据库中的数据。SELECT:从数据库表表中检索数据行和列INSERT:向数据库表添加新数据行UPDATE:更新数据库表中的数据DELETE:从新数据库表中删除数据行DCL(数据控制语言DataControlLanguage)用来控..
分类:
数据库 时间:
2015-03-31 20:23:56
阅读次数:
204
区别
sort是qsort的升级版,如果能用sort尽量用sort,使用也比较简单,不像qsort还得自己去写 cmp 函数,
只要注明 使用的库函数就可以使用,参数只有两个(如果是普通用法)头指针和尾指针;
默认sort排序后是升序,如果想让他降序排列,可以使用自己编的cmp函数
bool compare(int a,int b)
{
return a>b; //降序排列,如...
分类:
其他好文 时间:
2015-03-31 16:10:56
阅读次数:
196
Treap
Treap是一种动态平衡的BST(Binary Search Tree),它每个节点拥有键值和优先级两种属性。对于键值而言,它是一颗排序二叉树。对于优先级而言,这棵树是堆(优先级最高的是根节点)。可以证明Treap中插入,删除和查找的期望时间复杂度均为O(logn)。关于Treap的更多介绍,可见刘汝佳《训练指南》P230。
一般我们用Treap就是用来替代平衡二叉...
分类:
其他好文 时间:
2015-03-31 14:40:38
阅读次数:
226
堆有最大堆和最小堆之分,最大堆就是每个节点的值都>=其左右孩子(如果有的话)值的完全二叉树。最小堆便是每个节点的值都<=其左右孩子值的完全二叉树。...
分类:
其他好文 时间:
2015-03-31 10:49:09
阅读次数:
148
声明:本文转载自Penguin的博客http://blog.sina.com.cn/s/blog_779cf3410101389s.html1,set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就 像一个集合一样。所有的操作的都是严格在logn时间之内完成,...
分类:
编程语言 时间:
2015-03-30 15:51:22
阅读次数:
140
《第五章》 散 列
散列表的实现常常叫做散列(hashing)。散列是一种用于以常数平均时间执行插入、删除和查找的技术。
关于散列有一个很重要的概念:散列函数。散列函数是散列的关键处之一,散列函数又是基于映射机制的一种对应关系(一般是多对一的关系)。
这章可以分为5个部分:一般想法,散列函数,分离链接法,开放定址法(可分为线性探测、平方探测、双散列)、再散列、可扩散列。
本...
分类:
其他好文 时间:
2015-03-30 14:38:42
阅读次数:
224