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中的readline()方法的使用
May 24 Python
Python pymongo模块用法示例
Mar 31 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
Python进程池Pool应用实例分析
Nov 27 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 21 Python
python中的 zip函数详解及用法举例
Feb 16 Python
python 读取二进制 显示图片案例
Apr 24 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
如何基于Python按行合并两个txt
Nov 03 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
星际争霸任务指南——神族
2020/03/04 星际争霸
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
php 上传功能实例代码
2010/04/13 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
js 调整select 位置的函数
2008/02/21 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
Python代理抓取并验证使用多线程实现
2013/05/03 Python
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
python使用电子邮件模块smtplib的方法
2016/08/28 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
如何利用Python 进行边缘检测
2020/10/14 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
机工车间主任岗位职责
2014/03/05 职场文书
演讲稿格式
2014/04/30 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
护士工作心得体会
2016/01/25 职场文书
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫