python实现顺序表的简单代码
作者:lonely_square_three 发布时间:2022-01-10 05:03:20
标签:python,顺序表
顺序表即线性表的顺序存储结构。它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的。比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存储在LOC(1)+(i-1)*sizeof(ElemType)位置上,其中sizeof(ElemType)表示每一个元素所占的空间。
下面是顺序表的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__()
来源:https://blog.csdn.net/xzfreewind/article/details/74834226


猜你喜欢
- python写的简单的学生管理系统,练习python语法。可以运行在windows和linux下,python 2.7。#!/usr/loc
- 输入汉字提示拼音,试试下面这个函数,不知是不是你要的那个:查询汉字便宜到词典网<%function getpychar(ch
- python爬取淘宝商品销量的程序,运行程序,输入想要爬取的商品关键词,在代码中的‘###'可以进一步约束商品的属性,比如某某作者的
- 窗口函数OVER (PARTITION BY xxx ORDER BY xxx ASC/DESC)测试数据表及数据测试表 employeeC
- Anaconda 本质上是一个软件发行版,包含了 conda、Python 等 180 多个科学包及其依赖项。因为包含了大量的科学包,Ana
- mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?其实
- 这篇文章主要介绍了基于Python批量生成指定尺寸缩略图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 做数据分析、科学计算等离不开工具、语言的使用,目前最流行的数据语言,无非是MATLAB,R语言,Python这三种语言,但今天小编简单总结了
- 第一步:通过ip138来爬取外网ip第二步:通过python的smtplib模块和email来发送邮件,具体用法去网上搜索,下面是代码示例:
- 在 jupyter notebook参数化运行python 时,怕输出太多文件太大,想及时清除 notebook 的输出。在别人代码里看到用
- 1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果
- 在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函数进行流程的控制。1、IF()函数的使用IF(expr
- 关于本地缓存1.wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSy
- 元组Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并
- 列表(List) 的三种遍历(序号和值)方法if __name__ == '__main__':
- QTableWidget介绍QTableWidget是Qt程序中常用的显示数据表格的控件,类似于c#中的DataGrid。QTableWid
- 首先是最常规的方法:<p id="para" title="cssrain demo!" on
- 一、效果展示话不多说先上效果为了更有意境我加了个完美的背景来衬托出月饼的好看我的月饼画的不圆的原因是我故意的,为什么呢?因为月有阴晴圆缺啊!
- //创建组件 function createobj() { if (window.ActiveXObject) { return(new A
- 接口压力测试500次,查看响应时间import jsonimport requestsimport logginglogging.basic