python顺序表代码_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.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实现顺序表的简单代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3.6 django部署_C
- 下一篇: mysql large pages_Li