-
電話帳アプリケーション: 電話帳アプリケーションでは、各連絡先の情報を格納するためにリンクリストが使用されます。各ノードは、名前、電話番号、メールアドレスなどの情報を保持します。リンクリストを使用することで、連絡先の追加、削除、検索などの操作が容易になります。
class Contact: def __init__(self, name, phone, email): self.name = name self.phone = phone self.email = email self.next = None class PhoneBook: def __init__(self): self.head = None def add_contact(self, name, phone, email): new_contact = Contact(name, phone, email) if self.head is None: self.head = new_contact else: current = self.head while current.next: current = current.next current.next = new_contact # 他の操作(削除、検索など)も実装可能
-
バッファー管理: オペレーティングシステムやデータベースシステムでは、リンクリストがバッファー管理に使用されます。バッファーは一時的なデータの保持に使用され、リンクリストはバッファー内のデータブロックを管理します。新しいデータが到着した場合、リンクリストを使用して最も古いデータを削除し、新しいデータを追加することができます。
class BufferBlock: def __init__(self, data): self.data = data self.next = None class Buffer: def __init__(self): self.head = None def add_data(self, data): new_block = BufferBlock(data) if self.head is None: self.head = new_block else: current = self.head while current.next: current = current.next current.next = new_block # 最大容量を超えた場合、最も古いデータを削除 # 他の操作(データの削除、検索など)も実装可能
-
オーディオプレーヤーのキュー: オーディオプレーヤーアプリケーションでは、リンクリストが再生キューの管理に使用されます。各曲はリンクリストのノードとして表され、次の曲へのリンクが保持されます。曲の追加、削除、再生の制御がリンクリストを介して行われます。
class Song: def __init__(self, title, artist): self.title = title self.artist = artist self.next = None class Playlist: def __init__(self): self.head = None def add_song(self, title, artist): new_song = Song(title, artist) if self.head is None: self.head = new_song else: current = self.head while current.next: current = current.next current.next = new_song # 他の操作(削除、再生など)も実装可能
リンクリストはこれらの例の一部であり、他にも様々な実世界の使用例があります。リンクリストは、データの追加と削除が頻繁に行われる場合や、順序を保持する必要がある場合に特に有用です。また、リンクリストは他のデータ構造の基礎としても使用されます。