[python学习]数据结构

数据结构分为线性结构和非线性结构,常用的线性结构是列表,python里面的列表仅仅是列表(个人理解),如果要用链表的话,python需要自己再定义,但是js可以直接用。

找了一下列表和栈的区别,如下:

列表:

列表:
1、列表中的元素是怎么存储的?
是顺序存储的,是一块连续的内存
2、列表的操作:按下标查找,插入元素,删除元素

python中的列表如何实现?
Python中列表的类型可以不同
    Python中的列表存放的不是值而是地址,32位机器一个地址占4个字节,地址的长度是固定的
列表长度不固定
    Python解释器自动维护的,发现长度不够会新开辟一块内存,把之前的列表进行拷贝
python下标查找和append复杂度是O(1)
python列表的插入和删除的复杂度是O(n)

一般来说,python对列表的处理,添加新元素:arr.append(),

js里面是arr.push

栈:

栈(stack)是一个数据集合,可以理解为只能在一端进行插入或删除操作的列表
栈的特点:LIFO
栈的概念:栈顶,栈底
栈的基本操作:(用列表可以实现)
    进栈:li.append
    出栈: li.pop()
    取栈顶: li[-1]
栈的应用:括号匹配问题 '{[()[]{}]}'遇到左括号就入栈,遇到右括号就看栈顶的左括号,把匹配的左括号出栈,匹配完后栈为空说明匹配。

综上,栈就列表,不过是特殊情况的列表。

以下是对队列的认识:

”队列:先进先出。只需要操作线性表的两端。一端只能进入,另一端只能出。队尾进,队首出。有顺序存储和链式存储两种。队列假溢出是因为队首指针确定导致的,就是被删除的元素空间无法被重复利用。可以让队首和队尾的指针循环起来就可以,就是将元素存储在循环向量中。“

一端只能进入,另一端只能出,应该是指只能从一端添加新元素,另一端删除元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值