数据结构
会飞的鱼_fly
这个作者很懒,什么都没留下…
展开
-
堆、栈知识点
学习堆、栈和堆栈。。。。。。。要点: 堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放**函数的参数值,局部变量的值**等。其操作方式类似于数据结 构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可 在计算机领域,堆栈是转载 2016-12-19 20:02:28 · 515 阅读 · 0 评论 -
面试中的二叉树题目
原文出处:http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当转载 2017-03-02 21:18:00 · 233 阅读 · 0 评论 -
【面试】八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的转载 2017-02-03 19:28:44 · 297 阅读 · 0 评论 -
各类排序算法优缺点对比
1.插入排序基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。优点:稳定,快缺点:比较次数不一定,比较次数越少,插入点后的数据移动越多,特别是当数据总量庞大的时候2.希尔排序基本思想: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排转载 2017-04-10 17:50:11 · 7350 阅读 · 0 评论 -
C++创建单链表
今天整理了一下创建链表的代码,我主要使用了尾插法,因为头插法插入的数据是倒叙的,所以我不常用,且原理和尾插法一样,所以这里只给出尾插法。尾插法需要定义一个尾指针ptail,始终指向链表的尾端p,每次新插入结点时,都使用这个尾指针指向新插入的结点,即ptail->next=pnew,然后将尾指针更新为pnew,即ptail=p。如此循环。先给出一个没有头指针的创建方法(头指针即第一个结点原创 2017-04-09 18:27:33 · 10701 阅读 · 3 评论 -
数组中只出现一次的数
题目1:一个数组中,除了某一个只出现过一次的数字外,其余数字均出现过2次,找出这个只出现了一次的数字。思路:分析题干,发现强调了数组中数字出现的次数为1和2,则可以想到异或运算,两个相同的数字异或结果为0,相同的数异或的结果为其本身,且异或运算存在交换律和结合律,即a^b^a=b, b^a^a=b。那么利用异或运算的这些性质即可求解本题:依次将数组的每个数进行异或运算,异或的结果即为所求。原创 2017-05-03 22:10:13 · 419 阅读 · 0 评论