网络编程
位置:首页>> 网络编程>> Python编程>> python如何对链表操作

python如何对链表操作

作者:南方的墙  发布时间:2023-08-18 05:40:46 

标签:python,链表

链表

链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址。
由于每个结点都包含了可以链接起来的地址信息,所以用一个变量就能够访问整个结点序列。
也就是说,结点包含两部分信息:一部分用于存储数据元素的值,称为信息域;另一部分用于存储下一个数据元素地址的指针,称为指针域。链表中的第一个结点的地址存储在一个单独的结点中,称为头结点或首结点。链表中的最后一个结点没有后继元素,其指针域为空。

代码


class Node():
 '创建节点'

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

class LinkList():
 '创建列表'

def __init__(self, node):
   '初始化列表'
   self.head = node    #链表的头部
   self.head.next = None
   self.tail = self.head #记录链表的尾部

def add_node(self, node):
   '添加节点'
   self.tail.next = node
   self.tail = self.tail.next

def view(self):
   '查看列表'
   node = self.head
   link_str = ''
   while node is not None:
     if node.next is not None:
       link_str += str(node.data) + '-->'
     else:
       link_str += str(node.data)
     node = node.next
   print('The Linklist is:' + link_str)

def length(self):
   '列表长度'
   node = self.head
   count = 1
   while node.next is not None:
     count += 1
     node = node.next
   print('The length of linklist are %d' % count)
   return count

def delete_node(self, index):
   '删除节点'
   if index + 1 > self.length():
     raise IndexError('index out of bounds')
   num = 0
   node = self.head
   while True:
     if num == index - 1:
       break
     node = node.next
     num += 1
   tmp_node = node.next
   node.next = node.next.next
   return tmp_node.data

def find_node(self, index):
   '查看具体节点'
   if index + 1 > self.length():
     raise IndexError('index out of bounds')
   num = 0
   node = self.head
   while True:
     if num == index:
       break
     node = node.next
     num += 1
   return node.data

node1 = Node(3301)
node2 = Node(330104)
node3 = Node(330104005)
node4 = Node(330104005052)
node5 = Node(330104005052001)

linklist = LinkList(node1)
linklist.add_node(node2)
linklist.add_node(node3)
linklist.add_node(node4)
linklist.add_node(node5)

linklist.view()
linklist.length()

来源:https://www.cnblogs.com/shuzf/p/13786856.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com