python语言算法_数据结构和算法基础Python语言实现
时间: 2023-11-18 13:05:46 浏览: 189
算法和数据结构的实现_C++_Python_下载.zip
Python 是一种高级语言,其语法简单易懂,非常适合用来实现数据结构和算法。下面介绍几种常用的数据结构和算法的 Python 实现。
1. 数组
在 Python 中,可以用列表(list)来实现数组。例如,以下代码实现了一个长度为 5 的整型数组:
```
arr = [0] * 5
```
2. 栈
栈是一种后进先出(LIFO)的数据结构,可以用 Python 的列表来实现。例如,以下代码实现了一个栈:
```
stack = [] # 初始化一个空栈
# 入栈
stack.append(1)
stack.append(2)
stack.append(3)
# 出栈
top = stack.pop() # 弹出栈顶元素(3)
```
3. 队列
队列是一种先进先出(FIFO)的数据结构,可以用 Python 的列表来实现。例如,以下代码实现了一个队列:
```
queue = [] # 初始化一个空队列
# 入队
queue.append(1)
queue.append(2)
queue.append(3)
# 出队
front = queue.pop(0) # 弹出队首元素(1)
```
4. 链表
链表是一种通过指针链接各个节点的数据结构,可以用 Python 的类来实现。例如,以下代码实现了一个链表节点和链表:
```
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class LinkedList:
def __init__(self):
self.head = None
# 在链表末尾插入一个节点
def append(self, val):
if not self.head:
self.head = ListNode(val)
else:
curr = self.head
while curr.next:
curr = curr.next
curr.next = ListNode(val)
# 删除链表中第一个值为val的节点
def delete(self, val):
if not self.head:
return
if self.head.val == val:
self.head = self.head.next
return
curr = self.head
while curr.next:
if curr.next.val == val:
curr.next = curr.next.next
return
curr = curr.next
```
5. 递归
递归是一种通过函数调用自身来解决问题的方法,可以用 Python 的函数来实现。例如,以下代码实现了一个递归函数,计算斐波那契数列第 n 项的值:
```
def fib(n):
if n == 0 or n == 1:
return n
return fib(n-1) + fib(n-2)
```
6. 排序
排序是一种将数据按照指定规则进行排序的算法,可以用 Python 的内置函数来实现。例如,以下代码实现了一个简单的选择排序:
```
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
```
以上是 Python 实现常用的数据结构和算法的简单介绍,希望对你有所帮助。
阅读全文