怎么使​用Python仿照C语言来实现线性表的顺序存储结构

怎么使​用Python仿照C语言来实现线性表的顺序存储结构

今天小编给大家分享一下怎么使用Python仿照C语言来实现线性表的顺序存储结构的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

代码:

怎么使​用Python仿照C语言来实现线性表的顺序存储结构

#!/usr/bin/envpython#-*-coding:utf-8-*-__author__='MrHero'classNode(object):"""线性表的存储结构和C语言中的链式存储结构类似"""def__init__(self,data=None):self.data=dataself.next=NoneclassLKList(object):"""线性表的具体操作"""def__init__(self):"""相当于初始化线性表,即创建头结点头节点为空节点,占据位置号为0创建好的表即为:头节点[0]->节点[1]->节点[2]->节点[3]->节点[4]:return:"""self.L=Node(None)self.L.next=Noneself.length=0defis_empty(self):"""判断线新表的长度:return:"""returnself.length==0defget_length(self):"""获取线新表的长度:return:"""returnself.lengthdefinsert(self,i,elem):"""在指定位i处置插入元素elem:parami:指定的位置:paramelem:插入的元素elem:return:"""j=0p=self.Lwhilej<i-1andpisnotNone:#查找第i-1个节点j+=1p=p.nextifpisNone:#未找到逻辑位序为i-1的节点raiseIndexError("Indexisoutofrange!")else:#找到逻辑位序为i-1的节点tmp=Node(elem)tmp.next=p.nextp.next=tmpself.length+=1defdelete(self,i):"""删除指定节点的元素:parami:指定节点:return:删除的指定节点元素值"""ifself.is_empty():raiseIndexError("Thelistisempty!")elif0<i<=self.length:j=1p=self.Lwhilej<iandp:p=p.nextj+=1delelte_node=p.nextp.next=delelte_node.nextself.length-=1returndelelte_node.dataelse:raiseIndexError("Indexisoutofrange!")defget_elem(self,i):"""获取某个节点的值:parami::return:返回某个节点的值"""ifself.is_empty():raiseIndexError("Thelistisempty")elif0<i<=self.length:j=0p=self.Lwhilej<iandp:p=p.nextj+=1printp.dataelse:raiseIndexError("Indexisoutofrange!")deflocate_elem(self,elem):"""查找某值的位置:paramelem::return:返回第一个值等于elem的位置"""j=0p=self.LwhilepisnotNoneandp.data!=elem:p=p.nextj+=1ifpisNode:return-1else:returnjdefcreate_dict_list_H(self,list):"""头插法建表:paramlist::return:"""p=self.Lforiinrange(len(list)):tmp=Node(list[i])tmp.next=p.nextp.next=tmpself.length+=1defcreate_dict_list_E(self,list):"""尾插法建表:paramlist::return:"""p=self.Lr=pforiinrange(len(list)):tmp=Node(list[i])r.next=tmpr=tmpself.length+=1r.next=Nonedefshow_lklist(self):ifself.is_empty():raiseIndexError("It'saemptylist!")else:j=1p=self.Lwhilej<=self.lengthandp:p=p.nextifpisnotNone:printp.dataj+=1if__name__=='__main__':lk=LKList()##lk.create_dict_list_E([1,2,3,4])#print"-----"#lk.get_elem(1)#lk.get_elem(2)#lk.get_elem(3)#lk.get_elem(4)#print"-------"#lk.show_lklist()#lk.insert(3,5)#print"-------"#lk.show_lklist()#lo=lk.locate_elem(5)#print"locationis%d"%lo#lk.delete(4)#print"-------"#lk.show_lklist()

以上就是“怎么使用Python仿照C语言来实现线性表的顺序存储结构”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注恰卡编程网行业资讯频道。

发布于 2022-04-03 22:37:33
收藏
分享
海报
0 条评论
23
上一篇:C语言中的strlen函数怎么使用 下一篇:c语言如何求出给定范围内的所有质数
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码