一、什么是数据结构?
数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。
简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。
比如:列表、集合与字典等都是一种数据结构。
“程序=数据结构+算法”
二、数据结构的分类
数据结构按照其逻辑结构可分为线性结构、树结构、图结构
线性结构:数据结构中的元素存在一对一的相互关系
树结构:数据结构中的元素存在一对多的相互关系
图结构:数据结构中的元素存在多对多的相互关系
下面就来说说线性结构,树结构见链接,图结构待续。。
三、线性结构
(1)栈
1、定义:栈是一个数据集合,可以理解为只能在一端进行插入或者删除操作的列表。
2、栈的特点:后进先出(last-in,first-out),简称LTFO表
3、栈的概念:
栈顶:允许插入和删除的这一端称之为栈顶
栈底:另一固定的一端称为栈底
空栈:不含任何元素的栈称为空栈
4、栈的基本操作:
进栈(压栈):push
出栈:pop
取栈顶:gettop
如图:
5、栈的Python实现
不需要自己定义,使用列表结构即可。
进栈函数:append
出栈函数:pop
查看栈顶元素:li[-1]
li =[]
li.append(1)
li.append(2)
li.append(3)print(li)print(li.pop())print(li.pop())print(li.pop())#print(li.pop()) #当栈空的时候就会报错#print(li[-1]) #查看栈顶元素
6、栈的应用----括号匹配问题
问题:给一个字符串,其中包含小括号,中括号,大括号,求该字符串中的括号是否匹配
例如:
()()[]{} 匹配
([{()}]) 匹配
[]( 不匹配
[(]) 不匹配
代码如下:
#方式一
defbrace_match(s):'''括号匹配问题'''stack=[]#{()}[]
match = {')': '(', '}': '{', ']': '['}
match2= {'(': ')', "{": "}", "[": "]"}for ch ins:#print(i)
if ch