请你给几种重要的数据结构做出详细解释以及代码演示
时间: 2024-02-21 10:58:25 浏览: 21
好的,以下是三种常见的数据结构及其解释和代码演示:
1. 数组
数组是一组连续的内存单元,用来存储同一类型的数据。它可以通过下标来快速访问其中的元素。数组的大小一旦确定就无法更改。数组的优点是访问速度快,缺点是插入/删除元素时效率较低。
代码演示:
```python
# 创建一个整型数组
my_array = [1, 2, 3, 4, 5]
# 访问数组元素
print(my_array[0]) # 输出 1
# 修改数组元素
my_array[0] = 6
# 遍历数组
for i in my_array:
print(i)
```
2. 链表
链表是一种动态数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表的优点是插入/删除元素时效率高,缺点是访问元素时效率较低。
代码演示:
```python
# 定义链表节点类
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 创建一个链表
my_list = ListNode(1)
my_list.next = ListNode(2)
my_list.next.next = ListNode(3)
my_list.next.next.next = ListNode(4)
my_list.next.next.next.next = ListNode(5)
# 遍历链表
cur = my_list
while cur:
print(cur.val)
cur = cur.next
# 在链表头插入一个节点
new_node = ListNode(0)
new_node.next = my_list
my_list = new_node
# 在链表尾插入一个节点
cur = my_list
while cur.next:
cur = cur.next
cur.next = ListNode(6)
# 删除链表中的节点
cur = my_list
while cur.next and cur.next.val != 3:
cur = cur.next
cur.next = cur.next.next
```
3. 栈
栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。栈的应用场景很多,比如函数调用、表达式求值等。
代码演示:
```python
# 创建一个栈
my_stack = []
# 入栈
my_stack.append(1)
my_stack.append(2)
my_stack.append(3)
# 出栈
print(my_stack.pop()) # 输出 3
print(my_stack.pop()) # 输出 2
# 查看栈顶元素
print(my_stack[-1]) # 输出 1
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)