Python实现顺序表

239 篇文章 4 订阅
91 篇文章 0 订阅

计算机内存是一个连续的存储空间

上面的一个字节正好是一行,也就是8位。a=1占了4个存储单位,不同类型,占的存储单元不一样,如下所示:

代码测试如下:

#创建顺序表
class Sequence_Table():
    #初始化
    def __init__(self):
        self.date = [None]*100 #占位了100个
        #print(type(self.date)) #<class 'list'>
        self.length = 0
    #判断占位是否满了
    def isFull(self):
        if self.length>100:
            print("该顺序表已满,无法添加元素")
            return 1
        else:
            return 0
    #按下标索引查找
    def selectByIndex(self,index):
        if index >=0 and index<=self.length-1:
            return self.date[index]
        else:
            print("你输入的下标不对,请重新输入\n")
            return 0
    #按元素查下标
    def selectByNum(self,ele):
        isContain = 0
        for i in range(0,self.length):
            if self.date[i] == ele:
                isContain = 1
                print("你查找元素的下标是%d\n"%i)
        if isContain == 0:
                print("没有你要的数据")
    #追加元素
    def addNum(self,num):
        if self.isFull() == 0:
            self.date[self.length] = num
            self.length += 1
    #打印顺序表
    def printAllNum(self):
        for i in range(self.length):
             print("a[%s]=%s"% (i,self.date[i]),end=" ")
        print("\n")
    #按下标插入数据 保序的元素插入
    def insertNumByIndex(self,num,index):
        if index<0 and index>self.length:
            return 0
        self.length+=1
        #从最后倒序到插入位置index(不包括下标index)需要将元素后移。
        for i in range(self.length-1,index,-1):
            temp = self.date[i]
            self.date[i] = self.date[i-1]
            self.date[i-1] = temp
        self.date[index] = num
        return  1



    #按下标删除元素 保序的元素删除
    def deleteNumByIndex(self,index):
        if self.length <=0:
             print("该顺序表内没有数据,不用删除!")
        # 从index位置到最后将元素后移,保序的元素删除
        for i in range(index,self.length-1):
            temp = self.date[i]
            self.date[i] = self.date[i + 1]
            self.date[i+1] = temp
        self.date[self.length-1] = 0 #删除一个最后的元素赋值为0
        self.length -= 1 #删除一个元素总长度减1
def main():
    #创建顺序表对象
    seq_t = Sequence_Table()

    #插入3个元素
    seq_t.addNum(1)
    seq_t.addNum(2)
    seq_t.addNum(3)
    #打印验证
    seq_t.printAllNum()
    #按照索引查找
    num = seq_t.selectByIndex(2)
    print("你要查找的数据是%d\n" % num)

    #按照索引插入数据
    seq_t.insertNumByIndex(4,1)
    seq_t.printAllNum()
    #按照数字查下标
    seq_t.selectByNum(4)
    #删除数据
    seq_t.deleteNumByIndex(1)
    seq_t.printAllNum()
if __name__ == "__main__":
    main()
参考资料:

https://www.cnblogs.com/Se7eN-HOU/p/11086749.html

网上的教程

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值