学过数据结构的都知道,单链表是一种简单的数据结构,很常用。如果学会使用单链表后,在学双向链表,就很容易上手。在高级语言中,集合有的就是用双链表实现的。今天,我先完成单链表的实现,以后在写其他的。 如果有差错,请指正。
# -*- 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实现单链表、双链表、循环单链表、循环双链表、顺序表相关操作。包括创建、头插、尾插、遍历、删除、查找元素。
python实现的单链表,实现了链表初始化,增删改查,链表合并等方法
Python实现单链表,适合初学者。 使用Python编程链表数据结构,可以使用类来实现单链表的基本操作,如下所示: # 这个程序定义了两个类:Node和LinkedList。 # Node类用于表示单链表中的每个节点,包含数据和指向下...
单链表的逆置
单链表反转的python实现,简洁详细易于理解,附带注释易于分析
主要为大家详细介绍了python实现单链表中删除倒数第K个节点的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要给大家介绍了关于python实现单链表的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
1. Python实现单链表; 2. 确保可执行,并在文件中给出了案例与执行结果; 3. 单链表的操作:单链表构建,从头插入,从尾插入以及从指定位置插入与删除等操作; 4. .py文件展示了可执行的代码文件 5. 具体内容分析...
Python实现单链表 关于链表 链表(Linked List)是由许多相同数据类型的数据项按照特定顺序排列而成的线性表。 链表中个数据项在计算机内存中的位置是不连续且随机的,数组在内存中是连续的。 链表数据的插入和...
主要为大家详细介绍了python版本单链表实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了python如何实现单链表的反转,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
根据链表数据结构的知识,进行初步练习,从单链表的反转、环的检测、两个有序链表的合并、判断单向链表是否是回文字符串四个题目着手,分别进行代码实现。 首先定义单链表类: # 结点类 class Node(object): def _...
单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。 代码: class ListNode: def __init__(self,x): self...
主要介绍了Python单链表简单实现代码,结合实例形式分析了Python单链表的具体定义与功能实现技巧,需要的朋友可以参考下
链表的定义:链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点...python单链表实现代码: 复制代码 代码如下:#!/usr/bin/python# -*- coding: utf-8 -*- c
单链表解决约瑟夫环问题