热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据结构python描述:第一章:线性表

第一章:线性表本章结构:1.1什么是线性表现在我们有n(n0)个数据:a1a2a3an,把这n个元素进行排列就得到了

第一章:线性表

 

 

       本章结构:

 

1.1 什么是线性表

         现在我们有 n ( n > = 0 )个数据:a1 a2 a3  ... an ,把这 n 个元素进行排列就得到了一个线性表:

List = (a1, a2 , a3, ... an )   提示:线性表是一个有限的序列,即元素的个数必须是有限多个

举几个简单的例子:

LANGUAGE = (  c , c++ , Python , Java , PHP )

ANIMAL = ( 老虎 , 狮子 , 马 , 兔子 )

1.2 什么是顺序表

明白了线性表,让我们一起来看看顺序表是什么。我们把线性表的各项元素依次存储到计算机的一块连续的存储空间中,这就形成了顺序表。简而言之,我们可以把顺序表看做

线性表在计算机中的一种存储方式

比如下图所示:

接下来我们就要开始着手于顺序表的具体操作了:

① 定义一个顺序表

② 初始化顺序表

③ 判断顺序表是否为空(即表中没有任何元素 )或 顺序表是否已满

④ 把顺序表清空

⑤ 获取顺序表的元素个数

⑥ 查找顺序表中的某个元素

⑦ 向顺序表中插入某个元素

⑧ 在顺序表的尾部增添一个元素

⑨ 从顺序表中删除某个元素

 

1.3 Python代码实现

# -*- coding: utf-8 -*-
"""
Created on Fri Oct 31 17:42:35 2014@author: wangcan
"""
#Python代码
class Seqlist: #定义一个顺序表def __init__(self,maxSize): #初始化顺序表self.maxSize &#61; maxSize #maxSize决定顺序表的长度&#xff0c;即能够存储的最多元素个数self.data &#61; [] #当前顺序表为空self.last &#61; -1 #用于记录当前元素的下标def IsEmpty(self): #判断顺序表是否为空if self.last &#61;&#61; -1:return Trueelse:return Falsedef IsFull(self): #判断表是否已满if self.last &#43; 1 &#61;&#61; self.maxSize:return Trueelse:return Falsedef ClearSeqlist(self): #清空顺序表if not self.IsEmpty():self.data &#61; []self.last &#61; -1def LengthOfSeqlist(self): #返回顺序表的当前元素个数&#xff0c;即当前的长度return self.last &#43; 1def SearchData(self,x): #查找顺序表中的某个元素if self.IsEmpty():print "表为空&#xff01;"return -1for i in xrange(self.last&#43;1):if self.data[i] &#61;&#61; x:return iprint "你所查找的元素不存在"return -1def AppendData(self,x): #在顺序表的尾部增添一个元素if self.last&#43;1 &#61;&#61; self.IsFull():print "表已满&#xff0c;不能增加元素&#xff01;"else:self.data.Append(x)self.last &#43;&#61; 1def InsertToSeqlist(self,index,x): #向顺序表中第i个位置插入元素xif self.IsFull():print "表已满&#xff0c;不能插入&#xff01;"elif index<0 or index>&#61; self.maxSize:print "不合法的插入位置&#xff01;"elif index &#61;&#61; self.last &#43; 1:self.AppendData(x)else:for i in range(self.last,index-1,-1):self.data[i &#43; 1] &#61; self.data[i]self.data[index] &#61; xself.last &#43;&#61; 1def DeleteData(self,x): #从表中删除一个数据xif self.IsEmpty():print "表已空&#xff0c;无法删除元素&#xff01;"else:index &#61; -1for dataItem in self.data:index &#43;&#61; 1if x &#61;&#61; dataItem:breakfor i in range(index,self.last,1):self.data[index&#43;1] &#61; self.data[index]self.last -&#61; 1

1.4 顺序表的应用&#xff08;小试牛刀&#xff09;

大家都知道元素周期表&#xff1a;

前20位元素可以说是我们非常熟悉的了&#xff0c;接下来请使用顺序表来存储前20个化学元素&#xff0c;然后查找碳元素&#xff0c;获取其位置信息&#xff0c;再从表中删除钠元素&#xff0c;硅元素

最后向表中按其应在的位置插入钠元素&#xff0c;钪元素。

 

 

 


推荐阅读
author-avatar
卟媞1亽儚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有