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

第一章:线性表

 

 

       本章结构:

 

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 = maxSize   #maxSize决定顺序表的长度,即能够存储的最多元素个数
        self.data = []  #当前顺序表为空
        self.last = -1  #用于记录当前元素的下标
    def IsEmpty(self):  #判断顺序表是否为空
        if self.last == -1:
            return True
        else:
            return False
    def IsFull(self):   #判断表是否已满
        if self.last + 1 == self.maxSize:
            return True
        else:
            return False
    def ClearSeqlist(self): #清空顺序表
        if not self.IsEmpty():
            self.data = []
            self.last = -1
    def LengthOfSeqlist(self):  #返回顺序表的当前元素个数,即当前的长度
        return self.last + 1
    def SearchData(self,x):   #查找顺序表中的某个元素
        if self.IsEmpty():
            print "表为空!"
            return -1
        for i in xrange(self.last+1):
            if self.data[i] == x:
                return i
        print "你所查找的元素不存在"
        return -1
    def AppendData(self,x): #在顺序表的尾部增添一个元素
        if self.last+1 == self.IsFull():
            print "表已满,不能增加元素!"
        else:
            self.data.Append(x)
            self.last += 1
    def InsertToSeqlist(self,index,x):  #向顺序表中第i个位置插入元素x
        if self.IsFull():
            print "表已满,不能插入!"
        elif index<0 or index>= self.maxSize:
            print "不合法的插入位置!"
        elif index == self.last + 1:
            self.AppendData(x)
        else:
            for i in range(self.last,index-1,-1):
                self.data[i + 1] = self.data[i]
            self.data[index] = x
            self.last += 1
    def DeleteData(self,x): #从表中删除一个数据x
        if self.IsEmpty():
            print "表已空,无法删除元素!"
        else:
            index = -1
            for dataItem in self.data:
                index += 1
                if x == dataItem:
                    break
            for i in range(index,self.last,1):
                self.data[index+1] = self.data[index]
            self.last -= 1 

1.4 顺序表的应用(小试牛刀)

大家都知道元素周期表:

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

最后向表中按其应在的位置插入钠元素,钪元素。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值