python實(shí)現(xiàn)順序表的簡(jiǎn)單代碼
順序表即線性表的順序存儲(chǔ)結(jié)構(gòu)。它是通過一組地址連續(xù)的存儲(chǔ)單元對(duì)線性表中的數(shù)據(jù)進(jìn)行存儲(chǔ)的,相鄰的兩個(gè)元素在物理位置上也是相鄰的。比如,第1個(gè)元素是存儲(chǔ)在線性表的起始位置LOC(1),那么第i個(gè)元素即是存儲(chǔ)在LOC(1)+(i-1)*sizeof(ElemType)位置上,其中sizeof(ElemType)表示每一個(gè)元素所占的空間。
下面是順序表的python實(shí)現(xiàn):
#coding:utf-8 ''' author:xzfreewind ''' class SeqList(object): def __init__(self,max=10): self.max = max #默認(rèn)順序表最多容納10個(gè)元素 #初始化順序表數(shù)組 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錯(cuò)誤 raise TypeError if 0<= i < self.num: #如果位置i滿足條件,即在元素個(gè)數(shù)的范圍內(nèi),則返回相對(duì)應(yīng)的元素值,否則,超出索引,返回IndexError return self.date[i] else: raise IndexError #修改線性表種某一位置的元素 def __setitem__(self, key, value): if not isinstance(key,int): #如果key不為int型,則判定輸入有誤,即Type錯(cuò)誤 raise TypeError if 0<= key <self.num: #如果位置key滿足條件,即在元素個(gè)數(shù)的范圍內(nèi),則返回相對(duì)應(yīng)的元素值,否則,超出索引,返回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值的元素 #統(tǒng)計(jì)線性表中元素的個(gè)數(shù) 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__()
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在python 不同時(shí)區(qū)之間的差值與轉(zhuǎn)換方法
今天小編就為大家分享一篇在python 不同時(shí)區(qū)之間的差值與轉(zhuǎn)換方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01python pands實(shí)現(xiàn)execl轉(zhuǎn)csv 并修改csv指定列的方法
今天小編就為大家分享一篇python pands實(shí)現(xiàn)execl轉(zhuǎn)csv 并修改csv指定列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12python Jieba分詞處理詳解【模式,詞庫的添加、刪除,自定義詞庫,失敗處理等】
這篇文章主要介紹了python Jieba分詞處理,結(jié)合實(shí)例形式詳細(xì)分析了python 使用jieba分詞的模式,詞庫的添加、刪除,自定義詞庫,失敗處理等相關(guān)操作技巧,需要的朋友可以參考下2023-07-07Python 限定函數(shù)參數(shù)的類型及默認(rèn)值方式
今天小編就為大家分享一篇Python 限定函數(shù)參數(shù)的類型及默認(rèn)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python應(yīng)用開發(fā)之實(shí)現(xiàn)串口通信
在嵌入式開發(fā)中我們經(jīng)常會(huì)用到串口,串口通信簡(jiǎn)單,使用起來方便,且適用場(chǎng)景多。本文為大家準(zhǔn)備了Python實(shí)現(xiàn)串口通信的示例代碼,需要的可以參考一下2022-11-11PyQt 實(shí)現(xiàn)使窗口中的元素跟隨窗口大小的變化而變化
今天小編就為大家分享一篇PyQt 實(shí)現(xiàn)使窗口中的元素跟隨窗口大小的變化而變化,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06