当前位置:   article > 正文

数据结构(python)之小杨笔记一

数据结构(python)之小杨笔记一

数据结构:数据结构是计算机科学中研究数据组织、管理和存储方式的一门重要领域。它关注的是如何以最有效地方式组织和存储数据,以便能够高效地访问和修改这些数据。

主要分为两类:

1.基本数据结构

(1.)数组:一组连续储存的相同类型的数据元素。

(2.)链表:由一系列节点组成的数据结构,每个结构包含数据和指向下一个节点的指针。

(3.)栈:一种先进后出的数据结构,只能在栈顶进行插入和删除操作。

(4.)队列:一种先进先出的数据结构,只能在队列的前端进行删除操作,在队列的后端进行插入操作。

(5.)树:一种非线性的数据结构,由节点和边组成,每个节点最多有一个夫节点和多个子节点

(6.)图:一种包含节点和边的数据结构,用于表示对象之间的关系。

2.高级数据结构

(1.)堆:一种特殊的树形数据结构,用于实现优先队列

(2.)哈希表:一种通过哈希函数将关键字映射到储存位置的数据结构,用于快速查找。

(3.)图的算法:用于解决图结构中的各种问题的算法,如最短路径,最小生成树。

那么我们来看看这些在python里面是怎么存放和输出的吧

one(数组):

  1. #创建一个包含学生成绩的数组
  2. grades = [85,90,75,95,80]
  3. #访问数组中的元素
  4. print("第一个学生的成绩是:", grades[0])#输出:85
  5. #修改数组中的元素
  6. grades[2] = 70
  7. print("修改后的成绩数组:", grades)#输出:[85,90,70,95,80]
  8. #添加新的成绩
  9. grades.append(88
  10. print("添加新成绩后的数组:", grades)#输出:[85,90,70,95,80,88]
  11. #删除数组中的元素
  12. removed_grade = grades.pop(3
  13. print("删除的成绩是:", removed_grade)#输出:95
  14. print("删除后的数组:", grades)#输出:[85,90,70,80,88]
  15. #获取数组的长度
  16. print("数组的长度是:", len(grades))#输出:5

two(链表):

  1. #定义链表节点类
  2. class Node:
  3. def __init__(self, data):
  4. self.data = data #节点的数据
  5. self.next = None #指向下一个节点的指针
  6. #定义链表类
  7. class LinkedList:
  8. def __init__(self):
  9. self.head = None #链表的头节点
  10. #在链表尾部添加新节点
  11. def append(self, data):
  12. new_node = Node(data)
  13. if not self.head:
  14. self.head = new_node
  15. return
  16. last_node = self.head
  17. while last_node.next:
  18. last_node = last_node.next
  19. last_node.next = new_node
  20. #打印链表元素
  21. def print_list(self):
  22. current_node = self.head
  23. while current_node:
  24. print(current_node.data, end=" ")
  25. current_node = current_node.next
  26. print()
  27. #创建一个链表实例
  28. my_list = LinkedList()
  29. #向链表中添加元素
  30. my_list.append(1)
  31. my_list.append(2)
  32. my_list.append(3)
  33. my_list.append(4)
  34. #打印链表元素
  35. print("链表元素:")
  36. my_list.print_list()

three(栈):

  1. class Stack:
  2. def __init__(self):
  3. self.items = [] #使用列表作为栈的内部存储
  4. #判断栈是否为空
  5. def is_empty(self):
  6. return len(self.items) == 0
  7. #入栈操作
  8. def push(self, item):
  9. self.items.append(item)
  10. #出栈操作
  11. def pop(self):
  12. if not self.is_empty():
  13. return self.items.pop()
  14. else:
  15. print("栈已空")
  16. return None
  17. #返回栈顶元素但不移除
  18. def peek(self):
  19. if not self.is_empty():
  20. return self.items[-1]
  21. else:
  22. print("栈已空")
  23. return None
  24. #返回栈的大小
  25. def size(self):
  26. return len(self.items)
  27. #创建一个栈实例
  28. stack = Stack()
  29. #入栈操作
  30. stack.push(1)
  31. stack.push(2)
  32. stack.push(3)
  33. #打印栈的大小
  34. print("栈的大小:", stack.size())
  35. #出栈操作
  36. print("出栈元素:", stack.pop())
  37. #打印栈顶元素
  38. print("栈顶元素:", stack.peek())
  39. #打印栈是否为空
  40. print("栈是否为空:", stack.is_empty())

其中栈使用了几个方法:

is_empty(): 判断栈是否为空。

push(item): 将元素压入栈顶。

pop(): 弹出栈顶元素并返回。

peek(): 返回栈顶元素但不移除。

size(): 返回栈的大小。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/585153
推荐阅读
相关标签
  

闽ICP备14008679号