学过数据结构的都知道,单链表是一种简单的数据结构,很常用。如果学会使用单链表后,在学双向链表,就很容易上手。在高级语言中,集合有的就是用双链表实现的。今天,我先完成单链表的实现,以后在写其他的。 如果有差错,请指正。
# -*- coding: cp936 -*- #--------------------------------------------- # #author chile #version 1.0 #date 2014-02-12 #desc 单链表集合 # # #--------------------------------------------- class LinkList: def __init__(self): self.root = LinkList.Entry() self.entry = self.root self.list = list() self.tally = 0 #新增的数据都是插入在尾部 def add(self,value): temp = self.Entry(value = value) self.entry.next = temp self.entry = temp self.tally += 1 #在头部添加 def addFirst(self,value): temp = self.Entry(value = value) entry = self.root.next #获取头部的第一个节点 temp.next = entry #新增节点下一个节点指向当前第一个节点 self.root.next = temp #将头部指向新增的节点 self.tally += 1 def get(self,index): if index > self.tally or index < 0: return #其实应该抛出异常 mid = self.tally / 2 e = self.root.next if index < mid: for i in range(index): e = e.next else: for i in range(self.tally): if (i == index): break e = e.next return e.value def getLast(self): return self.entry.value def getFirst(self): return self.root.next.value def remove(self,value): _temp = self.root.next if _temp.value == value: self.root.next = _temp.next self.tally -= 1 def removeFirst(self): root = self.root entry = root.next; root.next = entry.next self.tally -= 1 def size(self): return self.tally def all(self): self.list = list() self.iterator(self.root.next) return self.list def iterator(self,entry): if entry != None: self.list.append(entry.value) self.iterator(entry.next) #内部类 用于存放节点的值,以及下个点的引用 class Entry: def __init__(self, next = None , value = None): self.next = next self.value = value link = LinkList() link.add(1) link.add(2) link.addFirst(3) link.add(5) link.add(4) link.add(7) print link.all() link.removeFirst() print link.all() print link.size() print link.get(1) print link.get(4) print link.all() print link.getFirst() print link.getLast()
相关推荐
下面我们将深入探讨如何在Python中实现单链表,包括链表的初始化、增删改查以及链表的合并。 首先,我们创建一个名为`Node`的类,用于表示链表中的每个节点。这个类通常包含两个属性:`data`存储节点的数据,`next`...
Python实现单链表,适合初学者。 使用Python编程链表数据结构,可以使用类来实现单链表的基本操作,如下所示: # 这个程序定义了两个类:Node和LinkedList。 # Node类用于表示单链表中的每个节点,包含数据和指向下...
本文将深入探讨Python中四种不同类型的链表——单链表、双链表、循环单链表和循环双链表,以及顺序表的相关操作。 首先,**单链表** 是一种简单的数据结构,每个节点包含数据和一个指向下一个节点的指针。在Python...
单链表的逆置
1. Python实现单链表; 2. 确保可执行,并在文件中给出了案例与执行结果; 3. 单链表的操作:单链表构建,从头插入,从尾插入以及从指定位置插入与删除等操作; 4. .py文件展示了可执行的代码文件 5. 具体内容分析...
单链表反转的python实现,简洁详细易于理解,附带注释易于分析
本文实例为大家分享了python实现单链表中删除倒数第K个节点的具体代码,供大家参考,具体内容如下 题目: 给定一个链表,删除其中倒数第k个节点。 代码: class LinkedListAlgorithms(object): def __init__...
在本篇内容中,我们将探讨如何用Python实现单链表的反转操作。 首先,我们需要创建一个表示链表节点的类`Node`: ```python class Node: def __init__(self, data=None, next=None): self.data = data self....
Python实现单链表 关于链表 链表(Linked List)是由许多相同数据类型的数据项按照特定顺序排列而成的线性表。 链表中个数据项在计算机内存中的位置是不连续且随机的,数组在内存中是连续的。 链表数据的插入和...
在本文中,我们将探讨如何在Python中实现单链表。单链表是一种基本的数据结构,它由一系列节点组成,每个节点包含数据和一个指向下一个节点的引用(在Python中通常称为指针)。在Python中,由于没有原生的指针概念,...
根据链表数据结构的知识,进行初步练习,从单链表的反转、环的检测、两个有序链表的合并、判断单向链表是否是回文字符串四个题目着手,分别进行代码实现。 首先定义单链表类: # 结点类 class Node(object): def _...
单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。 代码: class ListNode: def __init__(self,x): self...
在这个示例中,我们将详细讨论如何用Python实现单链表的定义、插入、删除、打印等基本操作。 首先,我们需要定义一个表示链表节点的类`Node`。这个类有两个属性:`data`用于存储数据,`next`用于指向下一个节点。`...
在这个"SingleLinkList_python数据结构单链表函数_"主题中,我们将深入探讨如何在Python中实现单链表及其核心操作。 首先,我们有两个文件:LList.py和LNode.py。LNode.py通常会定义链表的节点类,而LList.py将包含...
在编程中,单链表通常用类或结构体来实现,包括节点类和链表类。例如,Python中的实现如下: ```python class Node: def __init__(self, data=None): self.data = data self.next = None class LinkedList: ...