编程语言
首页 > 编程语言> > 使用 Python 探索各种数据结构

使用 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,数据结构,堆栈
来源: