Structure des données Python: tableaux, listes, piles, files d'attente et implémentations

Nightmare 762459510 2021-11-25 18:31:21
structure des donn es python

Tout d'abord,,Nous devons faire la distinction entre certains concepts et leur relation

Tableau(array) Tableau(list) Liste des liens(linked list) Liste des tableaux(array list) File d'attente(queue) Pile(stack)

image

listListe

arrayTableau

pythonIntégré au milieulistStructure des données Les types de données stockées peuvent être différents.

Mais il y a un inconvénient. listC'est l'index des données, c'est - à - dire le pointeur Cela nécessite le stockage original des données plus un pointeur vers les données Augmentation de la consommation.

pythonMoyennenumpyDe la bibliothèquearray Stockage d'un seul type de données .

pythonLe tableau n'est pas un type de données de base Mais vous pouvez appelerarrayBibliothèque OunumpyTableau d'utilisation de la bibliothèquearray .

arrayLa Bibliothèque ne peut créer que des tableaux unidimensionnels numpyLes tableaux sont très polyvalents Utilisation recommandéenumpy.

1 import array
2 arr=array.array('i',[1,2,3,4]) #Créer un tableau
3 print(arr,type(arr))

Conversion mutuelle

1 import numpy as np
2 arr=np.array([1,2,3,4]) #Créer un tableau
3 li=arr.tolist() #Tableau converti en liste
4 new_arr=np.array(li) #Liste au tableau
5 print(arr,type(arr))
6 print(li,type(li))
7 print(new_arr,type(new_arr))
#Produits
[1 2 3 4] <class 'numpy.ndarray'>
[1, 2, 3, 4] <class 'list'>
[1 2 3 4] <class 'numpy.ndarray'>

On peut le découvrir.listLes éléments sont séparés par des virgules,arrayIl n'y a pas de symbole entre

QueueFile d'attente -Une structure de tableau qui ne permet qu'une opération de suppression dans un segment et une opération d'insertion à l'autre extrémité

StackPile -Supprimer la structure du tableau à la même extrémité que l'opération insert

Caractéristiques

Queue -Premier entré, premier sorti FIFO first in first out

Stack -Sortie avant et arrière FILO first in last out

Points communs:La pile et la file d'attente sont des tables linéaires avec des opérations limitées

Objet:Pile:Problème de correspondance entre parenthèses pour l'expression,Solution labyrinthe

File d'attente:Les banques font la queue,Problèmes de processus du système d'exploitation,Problème de partenaire de danse

Si votre temps n'est pas très stressant,Et je veux être rapidepythonAmélioration,Le plus important, c'est de ne pas avoir peur de souffrir.,Je vous suggère d'utiliser Wechat:762459510 ,C'est vraiment bien.,Beaucoup de gens progressent rapidement,J'ai besoin que tu n'aies pas peur de souffrir.!Vous pouvez l'ajouter et le voir.~

pythonMise en œuvre de la file d'attente:(Il y a des commentaires)

 1 class Node(object):
2 def __init__(self,val): #Valeur entrante du noeud
3 self.next=None #Chaque noeud définit2Propriétés nextPointez vers la position suivante
4 self.val=val # val Valeur du noeud
5
6 class Queue(object):
7 def __init__(self):
8 self.first=None #Chaque définition de file d'attente2Propriétés firstSupprimer l'extrémité
9 self.last=None # lastInsert end
10
11 def enqueue(self,n):
12 n=Node(n)
13 if(self.first==None): #Si la file d'attente est vide
14 self.first=n
15 self.last=n
16 else: #Si la file d'attente n'est pas vide
17 self.last.next=n #L'extrémité d'insertion pointe versn
18 self.last=n #La dernière valeur à l'extrémité d'insertion estn
19
20 def dequeue(self):
21 if (self.first==None):
22 return None
23 else:
24 reval=self.first.val
25 self.first=self.first.next #Spécifiez le premier à l'extrémité de suppression comme suivant
26 return reval
27 def allquit(self): # allquitAction:Les éléments de la file d'attente sont placés danslistFacile à imprimer
28 alist=[]
29 while (self.first!=None): #Cycle
30 temp=self.first.val #EtdequeueMême opération pour
31 self.first=self.first.next
32 alist.append(temp)
33 return alist
34
35 if __name__ == "__main__":
36 q=Queue()
37 q.enqueue(1)
38 q.enqueue(2)
39 q.enqueue(3)
40 q.dequeue()
41 print(q.allquit())

pythonMise en œuvre de la pile:(Il y a des commentaires)

 1 class Node(object):
2 def __init__(self,val):
3 self.next=None
4 self.val=val
5 class Stack(object):
6 def __init__(self):
7 self.top=None #EtqueueLes différents Inserts de suppression de pile sont à une extrémité Donc une seule position est définie
8
9 def push(self,n):
10 n=Node(n)
11 if(self.top==None): #Si la pile est vide
12 self.top=n
13 else:
14 n.next=self.top #L'élément insert suivant est l'élément top treillis
15 self.top = n #L'élément de la grille supérieure est la valeur d'insertion
16
17 def pop(self): #Supprimer les éléments de la grille supérieure
18 if(self.top==None): #Si la pile est vide
19 return None
20 else:
21 temp=self.top.val
22 self.top=self.top.next #Le nouvel élément top treillis est le dernier de l'ancien
23 return temp
24
25 def allquit(self): #Méthode de la pile d'impression
26 alist=[]
27 while(self.top!=None): #Cycle
28 temp=self.top.val #Etpop()La méthode fonctionne de la même façon
29 self.top=self.top.next
30 alist.append(temp)
31 print(alist)
32
33 if __name__== "__main__" :
34 s=Stack()
35 s.push(1)
36 s.push(3)
37 s.push(5)
38 s.pop()
39 s.allquit()
版权声明
本文为[Nightmare 762459510]所创,转载请带上原文链接,感谢
https://pythonmana.com/2021/11/20211125182917905n.html

  1. [learning notes] Python - pyecarts
  2. Python automated operation and maintenance -- actual combat (I)
  3. Python 多分支语句的三种结构
  4. Python 输出指定范围的闰年
  5. Fatal Python error: init_ fs_ encoding: failed to get the Python codec of the filesystem encoding
  6. Using Python to obtain a video address is as simple as
  7. #yyds干货盘点# 6. Python 元组,不可变的列表,滚雪球学 Python
  8. Yyds Dry Inventory # 6. Python tuples, invariant List, snowball Learning Python
  9. You cannot enter the registration page using Django registration redux
  10. 笨办法学Python第十八天:更多文件操作
  11. Python编辑代码,帮个忙呗
  12. pandas转换object为int失败了,有人能解答吗
  13. python解释题,解释这串,所代表的意思
  14. 用python用while语句写1000以内能被5和9整除的数和个数
  15. #python 我写了一个“饭店”程序
  16. Comprehensive application of Python foundation -- Development
  17. Écrivez en python le nombre et le nombre d'entiers qui peuvent être divisés par 5 et 9 jusqu'à 1000 dans une instruction while
  18. python3.7 FileNotFoundError: [WinError 2] 系统找不到指定的文件。
  19. 最全面的Python重点知识汇总
  20. You can learn Python articles without reading online classes (day 4)
  21. You can learn Python articles without reading online classes (the third day)
  22. python中 我想爬取一个网页,我在cmd中pip list中已经把requests 以及bs4 弄好了 但是他还是提示我没有那个模块
  23. You can learn Python articles without reading online classes (the next day)
  24. You can learn Python articles without reading online classes (the first day)
  25. 在Python和Go项目之后使用Rust的经验分享 - scaleway
  26. 使用PyO3从Python调用 Rust:加速Python
  27. Python 3.7 filenotfounderror: [winerror 2] le système n'a pas pu trouver le fichier spécifié.
  28. Python 一切皆对象
  29. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  30. 求各位亲们可以解答一下嘛,为什么跑不出来呀,大学Python
  31. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  32. python飞机大战如何让飞机始终在界面中,不能跑出界面
  33. Python代码阅读(第63篇):数字奇偶性
  34. python建立⼀個圖形介⾯應⽤(GUI app)
  35. python接口自动化的html格式报告以邮件形式发送展示的原文很丑怎么处理
  36. 针对初学者,我建议你学这 3 个 Python AutoEDA 工具包
  37. #yyds干货盘点#Python-爬虫_urlib一个类型和六个方法
  38. Pour les débutants, je vous recommande d'apprendre ces 3 kits autoeda Python
  39. 我想问python怎么入门嘞?求各路人士
  40. Summary of today's Django lessons: data reverse query triggers error field 'score_ jieshoufankui‘ expected a number but got ‘‘-20211109
  41. 关于#python_while循环的写法#的问题,如何解决?
  42. Python异常处理中异常的种类有哪些?你知道几个?
  43. Python异常處理中异常的種類有哪些?你知道幾個?
  44. Quels sont les types d'exceptions dans la gestion des exceptions python? Combien en savez - vous?
  45. À propos de # Python Comment résoudre le problème de l'écriture de la Boucle while?
  46. Python如何操作system.data.sqlite数据库
  47. python数字游戏,让你欲罢不能
  48. Python中的可迭代对象、迭代器、For循环工作机制、生成器
  49. 一个从没接触过编程的人,如何自学进入Python行业?
  50. 一份超级实用的 Python ”技巧“清单
  51. Python 程序员给上路初学者的3点忠告
  52. 3 conseils pour les débutants sur la route par les programmeurs Python
  53. Une liste de conseils Python super pratiques
  54. Comment quelqu'un qui n'a jamais été en contact avec la programmation peut - il apprendre à entrer dans l'industrie python?
  55. Objets itérables, itérateurs, pour le mécanisme de travail circulaire, générateurs en python
  56. Les Jeux de chiffres Python vous font vous arrêter
  57. Comment Python fonctionne avec la base de données system.data.sqlite
  58. Python之html与markdown互相转换
  59. Python之html與markdown互相轉換
  60. Conversion HTML et markdown de Python