ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用 Python 探索各种数据结构

2024-05-03 13:58:44  阅读:199  来源: 互联网

标签:Python 数据结构 堆栈





在计算机科学领域,数据结构在有效组织和管理数据方面发挥着关键作用。 Python 以其简单性和多功能性提供了多种方法来实现这些结构。让我们深入研究一些常见的,并通过简洁的 Python 代码片段来了解它们的功能。
 

链表:遍历前向节点


链接列表提供了用于存储和操作数据的动态结构。在此代码片段中,我们初始化一个链表并向前遍历其节点,并在遍历过程中打印其内容。
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def contentlist(self):
        tmp = self.head
        while(tmp):
            print(tmp.data)
            tmp = tmp.next

if __name__ == "__main__":
    l_list = LinkedList()
    l_list.head = Node(1)
    second = Node(2)
    third = Node(3)

    l_list.head.next = second
    second.next = third
    l_list.contentlist()
 

堆栈数据结构:后进先出(LIFO)


堆栈按照后进先出的原则运行。元素从同一端添加(推送)和删除(弹出)。在这里,我们演示了使用 Python 列表的堆栈实现。
stk = []

stk.append('1')'1')
stk.append('2')
stk.append('3')

stk.pop() # '3'
stk.pop() # '2'
stk.pop() # '1'

print(stk) # []
 

队列:先进先出 (FIFO)


与堆栈相反,队列遵循先进先出原则。元件从后面插入并从前面移除。这是使用 Python 列表的简单队列实现。
queue = []

queue.append('g')'g')
queue.append('f')
queue.append('g')

print(queue) # ['g', 'f', 'g']

print("\nElements dequeued from queue:")
print(queue.pop(0)) # 'g'
print(queue.pop(0)) # 'f'
print(queue.pop(0)) # 'g'

print(queue) # []
 

优先级队列:管理重要性


优先级队列为每个元素分配优先级。优先级较高的元素首先出列。如果优先级相同,则按添加元素的顺序处理元素。下面是优先级队列的 Python 实现。
class PriorityQ(object):
    def __init__(self):
        self.queue = []

    def __str__(self):
        return ' '.join([str(i) for i in self.queue])
    
    def empty(self):
        return len(self.queue) == 0
    
    def insert(self, data):
        self.queue.append(data)

    def delete(self):
        try:
            max = 0
            for i in range(len(self.queue)):
                if self.queue[i] > self.queue[max]:
                    max = i
            item = self.queue[max]
            del self.queue[max]
            return item
        except IndexError as e:
            print("Check error: " + str(e))
            exit()

if __name__ == "__main__":
    myQueue = PriorityQ()
    myQueue.insert(10)
    myQueue.insert(0)
    myQueue.insert(14)
    myQueue.insert(7)
    print(myQueue) # 10 0 14 7

    while not myQueue.empty():
        print(myQueue.delete()) # 14 10 7 0

这些简洁的代码片段让我们可以一睹 Python 在实现各种数据结构方面的多功能性。对于任何渴望开发高效且可扩展算法的程序员来说,理解这些基本结构至关重要。

标签:Python,数据结构,堆栈
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有