python数据结构---顺序线性表

文章描述了一个名为`classSeqList`的Python类,用于操作一个动态大小的列表,包括初始化、插入、删除元素,获取指定位置元素,查找元素位置,以及根据奇偶性重新排列列表。示例展示了如何使用这个类进行列表操作。
摘要由CSDN通过智能技术生成

class SeqList:
    def __init__(self, size=100):
        self.Max = size
        self.length = 0
        self.mylist = [None for x in range(0, self.Max)]

    def initt(self,i,e):
        self.mylist[i]=e
        self.length+=1

    def ListEmpty(self):#判空
        if self.length==0:
            return True
        else:
            return False

    def GetElem(self,i):#已知位置找
        if not isinstance(i,int):
            raise TypeError
        if 1<=i<=self.length:
            return self.mylist[i-1]
        else:
            return IndexError

    def LocateElem(self,x):#已知值找
        for i in range (self.length):
            if self.mylist[i]==x:
                return i+1
        return -1

    def Insert(self,i,e):#在i 上插入e

        if not isinstance(i,int):
            return IndexError
        if self.length>=self.Max:
            print("too long!!!")
        if 1<=i<=self.length:
            for j in range(self.length,i-1,-1):
                self.mylist[j]=self.mylist[j-1]
            self.mylist[i-1]=e
            self.length+=1

    def delete(self,i):#删除i上元素
        if not isinstance(i,int):
            return IndexError
        if self.length>=self.Max:
            print("too long!!!")
        if self.ListEmpty():
            print("already empty")
        if 1<=i<=self.length:
            for j in range(i,self.length-1):
                self.mylist[j]=self.mylist[j+1]
            self.length-=1
        else:
            raise IndexError

    def print(self):
        for i in range(self.length):
            print(  self.mylist[i]  )
        print('\n')


    def o(A):#前奇数后偶

        i=0
        j=A.length-1
        while i<=j:
            a=A.mylist[i]
            b=A.mylist[j]
            if((a%2)==0):
                A.mylist[j]=a
                A.mylist[i]=b
                j-=1
            elif(b%2!=0):
                A.mylist[j] = a
                A.mylist[i] = b
                i += 1
            else:
                i+=1
                j-=1



if __name__=='__main__':
    mylist_A=SeqList()
    for i in range(0,6):
        print("input a plase :")
        n=int(input())
        mylist_A.initt(i,n)
    print("input a plase :")
    n=int(input())
    mylist_A.delete(n)
    print("this is after delete:")
    mylist_A.print()
    print("is empty?")
    q=mylist_A.ListEmpty()
    print(q)
    print('\n')
    print('input a place to find value:')
    n=int(input())
    q=mylist_A.GetElem(n)
    print(q)
    print('\n')

    print('判断奇偶:')
    mylist_A.o()
    mylist_A.print()
    print('\n')







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东箭武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值