用python实现一个不排序的列表功能

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# learn <<Problem Solving with Algorithms and Data Structures>>
# Release 3.0
# chengang882 @ 2016-12-21
# Completed implementation of a Unordered List ADT

class Node(object):
    def __init__(self, init_data):
        self.data = init_data
        self.next = None

    def get_data(self):
        return self.data

    def get_next(self):
        return self.next

    def set_data(self, new_data):
        self.data = new_data

    def set_next(self, new_next):
        self.next = new_next

class UnorderedList(object):
    def __init__(self):
        self.head = None

    def is_empty(self):
        return self.head == None

    def add(self, item):
        temp = Node(item)
        temp.set_next(self.head)
        self.head = temp

    def size(self):
        current = self.head
        count = 0
        while current != None:
            count += 1
            current = current.get_next()
        return count

    def search(self, item):
        current = self.head
        found = False
        while current != None and not found:
            if  current.get_data() == item:
                found = True
            else:
                current = current.get_next()
        return found

    def remove(self, item):
        current = self.head
        previous = None
        found = False
        while not found:
            if current.get_data() == item:
                found = True
            else:
                previous = current
                current = current.get_next()
        if previous == None:
            self.head = current.get_next()
        else:
            previous.set_next(current.get_next())
    def show(self):
        pass

if __name__ == "__main__":
    ul = UnorderedList()
    print(ul.is_empty())
    ul.add(45)
    ul.add(78)
    ul.add("adfd")
    ul.add("4345")
    ul.add(3)
    print(ul.is_empty())
    print(ul.size())
    print(ul.search(45))
    print(ul.remove(78))
    print(ul)

  

>>>
True
False
5
True
None
<__main__.UnorderedList object at 0x0000000002F1C860>
>>>

  

时间: 2024-11-06 16:13:58

用python实现一个不排序的列表功能的相关文章

python实现一个简单的爬虫搜索功能

html.parser HTMLParser   urllib.request urlopen   urllib parse LinkParser(HTMLParser):     handle_starttag(, tag, attrs):         tag == :             (key, value) attrs:                 key == :                     newUrl = parse.urljoin(.baseUrl, v

python基础教程第2章——列表与元组笔记

1.序列是Python中最基本的数据结构.序列中的每个元素被分配一个序列号——元素的位置,也称索引,第1个索引是0,第2为1,以此类推.序列中的最后1个元素为-1,倒数第2个位-2. python中有6中内建的序列:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象. 2.通用序列操作:索引(indexing).分片(sliceing).加(adding).乘(multiplying).检查某个元素是否属于序列成员.计算序列长度.找出最大元素和最小元素的内建函数. 两种

Python基础教程(第二章 列表和元组)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5293195.html______ Created on Xu Hoo 本章将引入一个新的概念:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence),序列中的每个元素被分配一个序号——即

python中如何不区分大小写的判断一个元素是否在一个列表中

python中判断某一个元素是否在一个列表中,可以使用关键字in 和 not in. 示例如下: 如果需要输出相应的信息,可以搭配使用if语句,这里不赘述. ------------------------------------------------------------------------------------------分割线------------------------------------------------------------------------------

用 Python 写一个 NoSQL 数据库

本文译自 What is a NoSQL Database? Learn By Writing One In Python. 完整的示例代码已经放到了 GitHub 上, 请 点击这里, 这仅是一个极简的 demo, 旨在动手了解概念. 如果对译文有任何的意见或建议,欢迎 提 issue 讨论, 批评指正. 后续如有更新,可见 博客 . NoSQL 这个词在近些年正变得随处可见. 但是到底 "NoSQL" 指的是什么? 它是如何并且为什么这么有用? 在本文, 我们将会通过纯 Pytho

python基础之循环结构以及列表

python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成开发环境(IDE,Integrated Development Environment ) 常用的编程语言IDE开发工具有如下一些: VIM #经典的linux下的文本编辑器 Emacs #linux 文本编辑器, 比vim更容易使用 Eclipse # Java IDE,支持python, c ,

初心大陆-----python宝典 &nbsp; 第五章之列表

昨天是星期的第一天,简单回顾下昨天学习的东西,在重新看下之前的博客吧. 好啦,接着今天的宝典开始学习吧,我只有在学不进去的时候才会开启我的魔幻世界,正常情况下,他应该都是隐藏在我体内. 列表:宝典上大概的意思是:列表是python的苦力,python也就是初心大陆啦. 不知道小P老师在哪里找来的小苦力,试试我能使唤不. 重点说下:列表是可变的,可以更改列表的内容,简单来说就是这个小苦力没脾气,咋欺负都行. 使用苦力先要用工具来敲打他,list函数就是工具之一. 因为Hello这个小苦力不能修改,

python基础教程学习笔记---(2)列表和元组

1.在python中,最基本的数据结构是序列,序列中每一个元素被分配一个序号,即元素的位置,称为索引.索引从0开始,-1表示倒数第一个元素,-2表示倒数第二个元素,因此既可以是从前到后开始对元素进行访问,也可以从后往前对元素进行访问. 2.python序列中有6种内建的序列:列表.元组.字符串.Unicode字符串.buffer对象,xrange对象.其中有两种常见类型:列表和元组. 列表和元组的主要区别在于,列表可以修改,元组则不能.一般来说,在几乎所有的情况下列表都可以替代元组.一个例外情况

使用python实现一个简单的学生信息管理系统

最近公司搬办公室,杂七杂八的事情比较多,又碰上业务要上线了...很多事情堆到一起来做,导致最近没什么时间学习,写博客.前两天胜利日放假,把以前用java写的学生信息管理系统用python重新写了一遍,以便于帮助python的学习. 好了,废话不多说,首先进行需求分析,下面是我根据需求画的系统结构图: 纯手工制图.....画的不好敬请谅解.从上图来看,整个系统分为main,add,delete,change,select,sort,io,print共八个模块,实现了对学生信息的增删改查排的功能,将