python实现顺序表的简单代码


Posted in Python onSeptember 28, 2018

 顺序表即线性表的顺序存储结构。它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的。比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存储在LOC(1)+(i-1)*sizeof(ElemType)位置上,其中sizeof(ElemType)表示每一个元素所占的空间。

python实现顺序表的简单代码

下面是顺序表的python实现:

#coding:utf-8
 
'''
author:xzfreewind
'''
 
class SeqList(object):
 def __init__(self,max=10):
  self.max = max  #默认顺序表最多容纳10个元素
  #初始化顺序表数组
  self.num = 0
  self.date = [None] * self.max
 
 def is_empty(self):  #判定线性表是否为空
  return self.num is 0
 
 def is_full(self):  #判定线性表是否全满
  return self.num is self.max
 
 #获取线性表种某一位置的元素
 def __getitem__(self, i):
  if not isinstance(i,int): #如果i不为int型,则判定输入有误,即Type错误
   raise TypeError
  if 0<= i < self.num: #如果位置i满足条件,即在元素个数的范围内,则返回相对应的元素值,否则,超出索引,返回IndexError
   return self.date[i]
  else:
   raise IndexError
 
 #修改线性表种某一位置的元素
 def __setitem__(self, key, value):
  if not isinstance(key,int): #如果key不为int型,则判定输入有误,即Type错误
   raise TypeError
  if 0<= key <self.num:  #如果位置key满足条件,即在元素个数的范围内,则返回相对应的元素值,否则,超出索引,返回IndexError
   self.date[key] = value
  else:
   raise IndexError
 #按值查找元素的位置
 def getLoc(self,value):
  n = 0
  for j in range(self.num):
   if self.date[j] == value:
    return j
  if j == self.num:
   return -1  #如果遍历顺序表还未找到value值相同的元素,则返回-1表示顺序表种没有value值的元素
 
 #统计线性表中元素的个数
 def Count(self):
  return self.num
 
 #表末尾插入操作
 def appendLast(self,value):
  if self.num >= self.max:
   print 'The list is full'
   return
  else:
   self.date[self.num] = value
   self.num += 1
 
 #表任意位置插入操作:
 def insert(self,i,value):
  if not isinstance(i,int):
   raise TypeError
  if i < 0 and i > self.num:
   raise IndexError
  for j in range(self.num,i,-1):
   self.date[j] = self.date[j-1]
  self.date[i] = value
  self.num += 1
 
 
 #删除某一位置的操作
 def remove(self,i):
  if not isinstance(i,int):
   raise TypeError
  if i < 0 and i >=self.num:
   raise IndexError
  for j in range(i,self.num):
   self.date[j] = self.date[j+1]
  self.num -= 1
 
 #输出操作
 def printList(self):
  for i in range(0,self.num):
   print self.date[i]
 
 #销毁操作
 def destroy(self):
  self.__init__()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用pylab库实现画线功能的方法详解
Jun 08 Python
python画一个玫瑰和一个爱心
Aug 18 Python
Python模块的加载讲解
Jan 15 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
给大家整理了19个pythonic的编程习惯(小结)
Sep 25 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 Python
pandas数值排序的实现实例
Jul 25 Python
linux安装Python3.4.2的操作方法
Sep 28 #Python
python求质数的3种方法
Sep 28 #Python
python数据结构学习之实现线性表的顺序
Sep 28 #Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 #Python
使用Python处理BAM的方法
Sep 28 #Python
python版本单链表实现代码
Sep 28 #Python
python实现反转部分单向链表
Sep 27 #Python
You might like
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
smarty简单入门实例
2014/11/28 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
vue之延时刷新实例
2019/11/14 Javascript
javascript实现文字跑马灯效果
2020/06/18 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
python中map、any、all函数用法分析
2015/04/21 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
Django中的forms组件实例详解
2018/11/08 Python
django基础学习之send_mail功能
2019/08/07 Python
什么是Python中的匿名函数
2020/06/02 Python
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
美国著名手表网站:Timepiece
2017/11/15 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
责任书范本
2014/08/25 职场文书
欢送会主持词
2015/07/01 职场文书
保姆聘用合同
2015/09/21 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android