常见的数据结构与算法(二):想要学好python,这些知识必须掌握


前面小编已经和大家分享了数据结构中列表、字典、元祖,这是我能常用的三种结构方法,细心的小伙伴会发现,小编在上一篇文中结尾有说到,会继续分享数据结构与算法。

话不多说,我们接着上篇文章一起看看,如果大家有些许忘记,可以回去重新看一看,带你3分钟快速浏览完毕。

先来看数据结构中小编未讲到的“漏网之鱼”

常见的数据结构与算法(二):想要学好python,这些知识必须掌握

顺序表

别人都说字如其名,在这里是字如其表,顺序表采用顺序存储的方式来存储数据元素的线性表。

创建顺序表:

class SequenceList:

def __init__(self):

self.SeqList = []

def CreateSequenceList(self):

Element = input("请输入(按回车键确认,按#键结束):")

while Element !='#':

self.SeqList.append(int(Element))

Element = input("请输入(按回车键确认,按#键结束):")

list_1 = SequenceList()

list_1.CreateSequenceList()

结果:

常见的数据结构与算法(二):想要学好python,这些知识必须掌握

两种基本实现方式

一体式结构:

存储表信息的单元与元素存储区以连续的方式安排在一块存储区里,两部分数据的整体形成一个完整的顺序表对象。一体式结构整体性强,易于管理。但是由于数据元素存储区域是表对象的一部分,顺序表创建后,元素存储区就固定了。

分离式结构:

表对象里只保存与整个表有关的信息(即容量和元素个数),实际数据元素存放在另一个独立的元素存储区里,通过链接与基本表对象关联。

遍历顺序表元素

class SequenceList:

def __init__(self):

self.SeqList = []

def CreateSequenceList(self):

Element = input("请输入(按回车键确认,按#键结束):")

while Element !='#':

self.SeqList.append(int(Element))

Element = input("请输入(按回车键确认,按#键结束):")

def TraverseElement(self):

for i in range(len(self.SeqList)):

print(self.SeqList[i],end = ' ')

list_1 = SequenceList()

list_1.CreateSequenceList()

list_1.TraverseElement()

结果:

常见的数据结构与算法(二):想要学好python,这些知识必须掌握

链表

顺序表只能用来申请连续的存储空间,如果需要进行数据搬迁,使用起来就更笨拙,但是链表结构可以充分利用计算机的内存空间,实现灵活的内存动态管理。

单链表

单个链接列表中的节点只指向列表中的下一个元素。

常见的数据结构与算法(二):想要学好python,这些知识必须掌握


双链表

一个链表可以从头到尾遍历,而反向遍历则比较难,双链接列表允许以相同的成本在两个方向上遍历节点,无论从哪个节点开始,不过在双链接列表中,必须更改四个指针。

常见的数据结构与算法(二):想要学好python,这些知识必须掌握

数据结构的分享就到这里了,还有小编没有说到的内容,欢迎大家在评论区来说一说。

接下来就会着重分享算法的知识,我们先来了解一下基本概念。

算法:

计算机完成一个任务的整个流程即为一种算法。概念上讲,算法和数据结构没有任何联系,但一般地,使用不同的数据结构实现同一功能往往效率不同,因此,算法与数据结构密不可分。

算法的五大特性

输入: 算法具有0个或多个输入;

输出: 算法至少有1个或多个输出;

有穷性: 算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成;

确定性:算法中的每一步都有确定的含义,不会出现二义性;

可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成;

常见的数据结构与算法(二):想要学好python,这些知识必须掌握

Python中的数据结构和算法都是非常重要的知识点,虽然是以干货为主,学起来会有一些枯燥,但是等你学完之后,无论是操作爬虫还是其他都将如鱼得水。

算法在这一节内容只分享了一丢丢,如果你想继续深入学习,关注小编,我们下一篇文章见面!


分享到:


相關文章: