python self next_python单链表实现代码实例

#!/usr/bin/python

# -*- coding: utf-8 -*-

class Node(object):

def __init__(self,val,p=0):

self.data = val

self.next = p

class LinkList(object):

def __init__(self):

self.head = 0

def __getitem__(self, key):

if self.is_empty():

print 'linklist is empty.'

return

elif key self.getlength():

print 'the given key is error'

return

else:

return self.getitem(key)

def __setitem__(self, key, value):

if self.is_empty():

print 'linklist is empty.'

return

elif key self.getlength():

print 'the given key is error'

return

else:

self.delete(key)

return self.insert(key)

def initlist(self,data):

self.head = Node(data[0])

p = self.head

for i in data[1:]:

node = Node(i)

p.next = node

p = p.next

def getlength(self):

p =  self.head

length = 0

while p!=0:

length+=1

p = p.next

return length

def is_empty(self):

if self.getlength() ==0:

return True

else:

return False

def clear(self):

self.head = 0

def append(self,item):

q = Node(item)

if self.head ==0:

self.head = q

else:

p = self.head

while p.next!=0:

p = p.next

p.next = q

def getitem(self,index):

if self.is_empty():

print 'Linklist is empty.'

return

j = 0

p = self.head

while p.next!=0 and j

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个 Python 实现单链表的示例: ```python class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): self.head = None def append(self, data): new_node = Node(data) if not self.head: self.head = new_node return current_node = self.head while current_node.next: current_node = current_node.next current_node.next = new_node def print_list(self): current_node = self.head while current_node: print(current_node.data) current_node = current_node.next ``` 这个示例定义了一个 `Node` 类来表示链表中的节点,每个节点包含了一个 `data` 属性和一个指向下一个节点的 `next` 属性。`LinkedList` 类则定义了一个 `head` 属性来表示链表的头节点。 `append()` 方法用于向链表中添加新的节点。如果链表为空,则将新节点作为头节点。否则,遍历链表找到最后一个节点,然后将新节点添加到其 `next` 属性中。 `print_list()` 方法用于打印链表中的所有节点。遍历链表中的每个节点,打印其 `data` 属性。 ### 回答2: Python单链表是一种常用的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。 下面是一个Python单链表实例: ```python class Node: def __init__(self, data=None): self.data = data # 节点数据 self.next = None # 下一个节点的指针 class LinkedList: def __init__(self): self.head = None # 链表头指针 def is_empty(self): return self.head is None def append(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 insert(self, data, index): if index < 0 or index > self.get_length(): raise Exception('插入位置超出链表范围!') new_node = Node(data) if index == 0: new_node.next = self.head self.head = new_node else: count = 0 current_node = self.head while count < index - 1: current_node = current_node.next count += 1 new_node.next = current_node.next current_node.next = new_node def delete(self, index): if index < 0 or index >= self.get_length(): raise Exception('删除位置超出链表范围!') if index == 0: self.head = self.head.next else: count = 0 current_node = self.head while count < index - 1: current_node = current_node.next count += 1 current_node.next = current_node.next.next def search(self, data): current_node = self.head while current_node: if current_node.data == data: return True current_node = current_node.next return False def get_length(self): count = 0 current_node = self.head while current_node: count += 1 current_node = current_node.next return count ``` 在这个实例中,我们定义了一个节点类和一个链表类,通过节点类的实例来创建节点,并使用链表类来操作这些节点。链表类的方法包括添加节点、插入节点、删除节点、查找节点和获取链表长度。 使用这个单链表实例,我们可以方便地创建、操作和管理一个单链表数据结构。 ### 回答3: Python中的单链表是一种常见的数据结构,用来存储一系列的数据,并且可以进行灵活的操作。下面是一个使用Python实现单链表示例: ```python class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): self.head = None def append(self, data): new_node = Node(data) if not self.head: self.head = new_node else: current_node = self.head while current_node.next: current_node = current_node.next current_node.next = new_node def insert(self, data, position): new_node = Node(data) if position == 0: new_node.next = self.head self.head = new_node else: current_node = self.head for _ in range(position-1): if current_node.next: current_node = current_node.next else: break new_node.next = current_node.next current_node.next = new_node def remove(self, data): if not self.head: return if self.head.data == data: self.head = self.head.next else: current_node = self.head while current_node.next: if current_node.next.data == data: current_node.next = current_node.next.next break current_node = current_node.next def search(self, data): current_node = self.head while current_node: if current_node.data == data: return True current_node = current_node.next return False def display(self): current_node = self.head while current_node: print(current_node.data, end=' ') current_node = current_node.next print() ``` 上述代码通过定义了Node类和LinkedList类来实现单链表。其中,Node类表示链表中的节点,包含数据和指向下一个节点的指针。LinkedList类包含了一些常用的操作,比如:追加数据到链表末尾、在指定位置插入数据、删除指定数据、查找数据以及显示整个链表。 使用该单链表实例时,我们首先需要创建一个LinkedList对象,然后可以使用append()方法追加数据到链表末尾,使用insert()方法在指定位置插入数据,使用remove()方法删除指定数据,使用search()方法查找数据,使用display()方法显示整个链表的内容。 举个例子,我们可以这样使用该单链表实例: ```python linked_list = LinkedList() linked_list.append(1) linked_list.append(2) linked_list.append(3) linked_list.insert(0, 0) linked_list.remove(2) linked_list.display() ``` 这段代码会输出链表的内容:0 1 3。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值