![](https://img-blog.csdnimg.cn/20200329182859456.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
算法的一些基础知识
Dream____Fly
这个作者很懒,什么都没留下…
展开
-
数据结构与算法四
栈与队列栈的基本运算置空栈:构造一个空栈判栈空:若为空则返回true判栈满:若栈满则返回true进栈Push:将一个元素压入栈中退栈Pop:将栈顶元素删除,并且返回该元素取栈顶元素,getPop:将栈顶元素的值返回,但不改变栈的状态。class seq_stack(object): #初始化栈 def __init__(self,size): sel...原创 2019-01-24 11:23:58 · 218 阅读 · 0 评论 -
汉诺塔问题递归方法
汉诺塔问题递归方法'''1.每次只能移动以恶盘子2.小盘子永远在大盘子上面将汉诺塔问题考虑成三步骤;第一步:将n-1个盘子从初始位置移动到缓冲区第二步;将最后一个盘子从初始位置移动到最终位置上第三步:将缓冲区的n-1个盘子移动到最终位置上例子:三个盘子从X位置有移动到Z位置,Y为缓冲去=区移动的步骤:x ----> zx ----> yz ----&...原创 2019-08-06 23:26:26 · 452 阅读 · 0 评论 -
栈和队列的异同
栈和队列的异同:栈和队列都是线性表,都是限制了插入删除点的线性表(或者说是控制了访问点的线性表)共同点:1.都是只能在线性表的端点插入和删除2.n个(同类)数据元素的有限序列称为线性表。线性表的特点是数据元素之间存在“一对一”的关系,栈和队列都是操作受限制的线性表,他们和线性表一样,数据元素之间都存在“一对一”的关系不同之处:栈只允许在一段进行插入或删除操作的线性表,其最大的特点是“先进后...原创 2019-08-05 10:26:46 · 932 阅读 · 0 评论 -
单链表的实现——Python
给大家分享一段Python单链表实现的方法本代码主要讲了:实现链表长度遍历整个链表头部添加元素尾部添加元素指定位置添加元素删除节点查找节点#单链表的实现class Node(object): """节点""" def __init__(self,elem): self.elem = elem self.next = None#...原创 2019-04-18 11:10:22 · 160 阅读 · 0 评论 -
队列的实现——Python
今天,给大家分享一下队列实现的一些方法。我们说一下什么是队列,队列就是先进去的先出来现在我将队列实现的方法在下述代码里面class Queue(object): """队列""" def __init__(self): self.__list = [] def enqueue(self,item): """"往队列中添加一个item元...原创 2019-04-13 15:30:00 · 190 阅读 · 0 评论 -
栈的实现方法——Python
今天,给大家分享一下在Python中栈的实现方法,希望可以给大家带来帮助。栈的特点就是先进的后出,就像往一个容器之中装东西一样,永远都是上面的先出来。栈的实现方法就是下面的代码class Stack(object): def __init__(self): self.__list = [] def push(self,item):#添加一个新的元素在item...原创 2019-04-13 12:12:50 · 128 阅读 · 0 评论 -
python数据结构与算法——列表创建的时间复杂度
今天给大家分享一下在Python中创建列表的时间复杂度import timeitfrom timeit import Timer#append方法创建列表def test1(): li = [] for i in range(10000): li.append(i)#用+=的方法创建列表def test2(): li = [] for...原创 2019-04-03 17:48:43 · 473 阅读 · 0 评论 -
数据结构与算法三
数据结构的起源数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。程序设计=数据结构+算法基本概念和术语数据是描述客观事物的符号,是计算机中可以操作的对象,事能被计算机识别,并输入给计算机处理的符号集合。包括整形、实数型等数值类型,还包括字符及声音、图像。视频等非数值类型,可以输入到计算机中,能被计算机程序处理。数据元素是组成数据的、有一定意义...原创 2019-01-21 20:37:28 · 163 阅读 · 0 评论 -
数据结构与算法五-快速排序(两个指针)
快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。def partition(list,first,last): primarykey = list[first] low = first + 1 hight = last while hight &gt...原创 2019-01-26 11:48:41 · 226 阅读 · 0 评论 -
数据结构与算法五-归并排序
# 分区合并def merge(a, b): c = [] h = j = 0 while j < len(a) and h < len(b): if a[j] < b[h]: c.append(a[j]) j += 1 else: c.append...原创 2019-01-26 09:44:12 · 126 阅读 · 0 评论 -
数据结构与算法二
现代计算机–冯·诺依曼式计算机主要特点;1.以运算单位为中心2.采用储存程序原理3.储存器是按地址访问、线性编址的空间4.控制流由指令流产生5.指令由操作码和地址码组成6.数据以二进制编码计算机科学的范围1.计算机科学:是系统性研究与信息与计算的理论基础以及它们在计算机系统中如何实现与应用的实用技术的学科。2.数据结构和算法:指定义良好的计算过程,取一个或一组值作为输入,经一系...原创 2019-01-20 19:55:17 · 139 阅读 · 0 评论 -
数据结构与算法一
循环与递归递归:无限调用自身这个函数,每次调用总会改动一个关键变量,直到这个关键变量达到边界的时候,不再调用。递归与循环的区别?相同点:(1)都是通过控制一个变量的边界(或者多个),来改变多个变量为了得到所需要的值,而反复而执行的;(2)都是按照预先设计好的推断实现某一个值求取;(请注意,在这里循环要更注重过程,而递归偏结果一点)不同点:(1)递归通常是逆向思维居多,“递”和“归”不...原创 2019-01-19 20:53:23 · 142 阅读 · 0 评论 -
斐波那契数列递归算法与非递归算法
斐波那契数列,又称黄金分割数列,因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…#递归算法# def num(n):# i...原创 2019-08-06 23:32:53 · 1179 阅读 · 0 评论