【数据结构】python顺序表实现学生数据管理

代码如下:

class StuSeqList(object):

#构造函数
    def __init__(self,maxsize=100):
        self.maxsize=maxsize
        self.len=0
        self.data=[None]*maxsize

#判断满
    def is_full(self):
        if self.len == self.maxsize:
            return True
        else:
            return False

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

#尾插法
    def insert_tail(self,value):
        if self.is_full():
            print('表满了,不能操作')
            return False
        else:
            self.data[self.len]=value
            self.len+=1
            return True
#任意位置插入
    def insert_index(self,index,value):
        if self.is_full() or index>self.len or index<0:
            print('插入失败')
            return False
        else:
            i=self.len
            while i>index:
                self.data[i]=self.data[i-1]
                i-=1
            self.data[index]=value
            self.len+=1
            return True

#删除任意位置
    def del_index(self,index):
        if self.is_empty() or index>=self.len or index<0:
            print('删除位置不合法')
            return False
        else:
            i=index
            while i<self.len:
                self.data[i]=self.data[i+1]
                i+=1
            self.len-=1
            return True

#按位置修改
    def loc_revise(self,index,value):
        if self.is_empty() or index>=self.len or index<0:
            print('修改失败')
            return False
        else:
            self.data[index]=value
            return True

#按值修改
    def change_value(self,old_value,new_value):
        if old_value == new_value:
            print('无需修改')
        else:
            i=0
            while i<self.len:
                if self.data[i] == old_value:
                    self.data[i]=new_value
                    print('修改成功')
                    break
                i+=1
            else:
                print('找不到给定值')
            return -1

#按值返回位置
    def find_index(self,value):
        if self.is_empty():
            return False
        else:
            i = 0
            while i < self.len:
                if self.data[i] == value:
                    return i
                i+=1
            print('找不到给定值')
            return -1
#去重修改
    def remove_repeat(self):
        if self.is_empty() or self.len == 1 :
            print('该表不用去重')
        else:
            for i in range(self.len - 1, 0, -1):
                for j in range(i):
                    if self.data[i] == self.data[j]:
                        self.del_index(i)

#查看
    def show_me(self):
        if self.is_empty():
            print('表空')
            return False
        else:
            for i in range(self.len):
                print(self.data[i],end=' ')
            print()
            return True

测试用例:

if __name__ == '__main__':
    student_seq = StuSeqList(1000)
    #插入数据
    student_seq.insert_tail('张三')
    student_seq.insert_tail('李四')
    student_seq.insert_tail('王五')
    student_seq.show_me()
    #位置插入
    student_seq.insert_index(1,'小王八')
    student_seq.show_me()
    #删除
    student_seq.del_index(student_seq.find_index('小王八'))
    student_seq.show_me()

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值