4-3 Python数据结构常考题

本文介绍了Python中常考的数据结构,包括链表、队列、栈和堆。详细讲解了如何使用Python内置结构实现这些数据结构,以及它们的操作,如链表的反转、队列的FIFO、栈的LIFO、堆的最值获取,并给出了相关代码示例和冲突解决策略。
摘要由CSDN通过智能技术生成
一、常考题型

python web后端常考数据结构
1.常见的数据结构链表、队列、栈、二叉树、堆
2.使用内置结构实现高级数据结构,比如内置的 list/deque实现栈
3.Leetcode 或者 《剑指offer》上的常见题

二、常考数据结构之链表

链表有单链表、双链表、循环双端链表
1.如何使用 python来表示链表结构
2.实现链表常见操作,比如插入节点,反转链表,合并多个链表等
3.Leetcode练习常见链表题目

下面是 leetcode206号题 反转链表

# 定义单链表
class ListNode:
	def __init__(self, x):
		self.val = x
		self.next = None

class Solution:
	def reverseList(self, head):
		"""
		:type head: ListNode
		:rtype: ListNode
		"""
		pre = None
		cur = head
		while cur:
			next_node = cur.next
			cur.next = pre
			pre = cur
			cur = next_node
		return pre
		
三、常考数据结构之队列

队列(queue)是先进先出结构

1.如何使用python实现队列?
2.实现队列的 appendpop操作,如何做到先进先出
3.使用 pythonlist或者 collections.deque实现队列

代码示例:

from collections import deque

class Queue:
	def __init__(self):
		self.items = deque()

	def append(self, val):
		return self.items.append(val)

	def pop(self):
		return self.items.popleft()

	def empty(self):
		return len(self.items) == 0

def test_queue():
	q = Queue()
	q.append(0)
	q.append(1)
	q.append(2)
	
	print(q.pop())
	print(q.pop()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值