Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan struktur data teknologi asas Python

Bagaimana untuk melaksanakan struktur data teknologi asas Python

PHPz
PHPzasal
2023-11-08 21:26:051330semak imbas

Bagaimana untuk melaksanakan struktur data teknologi asas Python

Cara melaksanakan struktur data teknologi asas Python

Struktur data adalah bahagian yang sangat penting dalam sains komputer Ia digunakan untuk mengatur dan menyimpan data supaya ia boleh dimanipulasi dan diakses dengan cekap. Sebagai bahasa pengaturcaraan peringkat tinggi, Python menyediakan banyak struktur data terbina dalam, seperti senarai, tupel, kamus, dll., tetapi kadangkala kita juga perlu melaksanakan beberapa struktur data asas untuk memenuhi keperluan khusus.

Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan beberapa struktur data asas yang biasa, termasuk tindanan, baris gilir dan senarai terpaut, serta memberikan contoh kod yang sepadan.

  1. Timbunan

Timbunan ialah struktur data masuk-dahulu-keluar (LIFO) yang hanya membenarkan operasi sisipan (tolak) dan pemadaman (pop) pada bahagian atas tindanan. Dalam Python, anda boleh menggunakan senarai untuk melaksanakan timbunan mudah.

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()

    def peek(self):
        if not self.is_empty():
            return self.items[-1]

    def size(self):
        return len(self.items)

Gunakan kelas Tindanan untuk mencipta objek tindanan dan melaksanakan operasi:

stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.size())    # 输出:3
print(stack.pop())     # 输出:3
print(stack.peek())    # 输出:2
print(stack.is_empty())     # 输出:False
  1. Baris Gilir (Baris Gilir)

Baris Gilir ialah struktur data masuk dahulu keluar dahulu (FIFO) yang hanya membenarkan pemasukan (enqueue) pada penghujung Operasi baris gilir, lakukan operasi dequeue di kepala baris gilir. Anda boleh menggunakan senarai untuk melaksanakan baris gilir mudah dalam Python.

class Queue:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return len(self.items) == 0

    def enqueue(self, item):
        self.items.append(item)

    def dequeue(self):
        if not self.is_empty():
            return self.items.pop(0)

    def size(self):
        return len(self.items)

Gunakan kelas Queue untuk mencipta objek baris gilir dan melaksanakan operasi:

queue = Queue()
queue.enqueue('a')
queue.enqueue('b')
queue.enqueue('c')
print(queue.size())    # 输出:3
print(queue.dequeue())     # 输出:'a'
print(queue.is_empty())    # 输出:False
  1. Senarai Terpaut

Senarai terpaut ialah struktur data dinamik yang terdiri daripada satu siri nod, setiap nod mengandungi dua bahagian: data dan penunjuk ke nod seterusnya. Dalam Python, anda boleh menggunakan kelas untuk melaksanakan senarai terpaut mudah.

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

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

    def is_empty(self):
        return self.head is None

    def add_node(self, data):
        new_node = Node(data)
        if self.is_empty():
            self.head = new_node
        else:
            current_node = self.head
            while current_node.next:
                current_node = current_node.next
            current_node.next = new_node

    def remove_node(self, data):
        if not self.is_empty():
            current_node = self.head
            if current_node.data == data:
                self.head = current_node.next
            else:
                while current_node.next:
                    if current_node.next.data == data:
                        current_node.next = current_node.next.next
                        break
                    current_node = current_node.next

    def get_size(self):
        size = 0
        current_node = self.head
        while current_node:
            size += 1
            current_node = current_node.next
        return size

Gunakan kelas LinkedList untuk mencipta objek senarai terpaut dan melaksanakan operasi:

linked_list = LinkedList()
print(linked_list.is_empty())    # 输出:True

linked_list.add_node(1)
linked_list.add_node(2)
linked_list.add_node(3)
print(linked_list.get_size())    # 输出:3

linked_list.remove_node(2)
print(linked_list.get_size())    # 输出:2

Melalui contoh kod di atas, kami menunjukkan cara menggunakan Python untuk melaksanakan struktur data asas yang biasa seperti tindanan, baris gilir dan senarai terpaut. Struktur data ini digunakan secara meluas dalam algoritma dan pemprosesan data Menguasai prinsip pelaksanaan dan kaedah penggunaannya adalah sangat penting untuk meningkatkan lagi kebolehan pengaturcaraan.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan struktur data teknologi asas Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn