赞
踩
数据结构:数据结构是计算机科学中研究数据组织、管理和存储方式的一门重要领域。它关注的是如何以最有效地方式组织和存储数据,以便能够高效地访问和修改这些数据。
主要分为两类:
1.基本数据结构
(1.)数组:一组连续储存的相同类型的数据元素。
(2.)链表:由一系列节点组成的数据结构,每个结构包含数据和指向下一个节点的指针。
(3.)栈:一种先进后出的数据结构,只能在栈顶进行插入和删除操作。
(4.)队列:一种先进先出的数据结构,只能在队列的前端进行删除操作,在队列的后端进行插入操作。
(5.)树:一种非线性的数据结构,由节点和边组成,每个节点最多有一个夫节点和多个子节点
(6.)图:一种包含节点和边的数据结构,用于表示对象之间的关系。
2.高级数据结构
(1.)堆:一种特殊的树形数据结构,用于实现优先队列。
(2.)哈希表:一种通过哈希函数将关键字映射到储存位置的数据结构,用于快速查找。
(3.)图的算法:用于解决图结构中的各种问题的算法,如最短路径,最小生成树。
那么我们来看看这些在python里面是怎么存放和输出的吧
one(数组):
- #创建一个包含学生成绩的数组
- grades = [85,90,75,95,80]
-
- #访问数组中的元素
- print("第一个学生的成绩是:", grades[0])#输出:85
-
- #修改数组中的元素
- grades[2] = 70
- print("修改后的成绩数组:", grades)#输出:[85,90,70,95,80]
-
- #添加新的成绩
- grades.append(88)
- print("添加新成绩后的数组:", grades)#输出:[85,90,70,95,80,88]
-
- #删除数组中的元素
- removed_grade = grades.pop(3)
- print("删除的成绩是:", removed_grade)#输出:95
- print("删除后的数组:", grades)#输出:[85,90,70,80,88]
-
- #获取数组的长度
- print("数组的长度是:", len(grades))#输出:5
two(链表):
- #定义链表节点类
- class Node:
- def __init__(self, data):
- self.data = data #节点的数据
- self.next = None #指向下一个节点的指针
-
- #定义链表类
- class LinkedList:
- def __init__(self):
- self.head = None #链表的头节点
-
- #在链表尾部添加新节点
- def append(self, data):
- new_node = Node(data)
- if not self.head:
- self.head = new_node
- return
- last_node = self.head
- while last_node.next:
- last_node = last_node.next
- last_node.next = new_node
-
- #打印链表元素
- def print_list(self):
- current_node = self.head
- while current_node:
- print(current_node.data, end=" ")
- current_node = current_node.next
- print()
-
- #创建一个链表实例
- my_list = LinkedList()
-
- #向链表中添加元素
- my_list.append(1)
- my_list.append(2)
- my_list.append(3)
- my_list.append(4)
-
- #打印链表元素
- print("链表元素:")
- my_list.print_list()
-
three(栈):
- class Stack:
- def __init__(self):
- self.items = [] #使用列表作为栈的内部存储
-
- #判断栈是否为空
- def is_empty(self):
- return len(self.items) == 0
-
- #入栈操作
- def push(self, item):
- self.items.append(item)
-
- #出栈操作
- def pop(self):
- if not self.is_empty():
- return self.items.pop()
- else:
- print("栈已空")
- return None
-
- #返回栈顶元素但不移除
- def peek(self):
- if not self.is_empty():
- return self.items[-1]
- else:
- print("栈已空")
- return None
-
- #返回栈的大小
- def size(self):
- return len(self.items)
-
- #创建一个栈实例
- stack = Stack()
-
- #入栈操作
- stack.push(1)
- stack.push(2)
- stack.push(3)
-
- #打印栈的大小
- print("栈的大小:", stack.size())
-
- #出栈操作
- print("出栈元素:", stack.pop())
-
- #打印栈顶元素
- print("栈顶元素:", stack.peek())
-
- #打印栈是否为空
- print("栈是否为空:", stack.is_empty())
其中栈使用了几个方法:
is_empty(): 判断栈是否为空。
push(item): 将元素压入栈顶。
pop(): 弹出栈顶元素并返回。
peek(): 返回栈顶元素但不移除。
size(): 返回栈的大小。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。