首页 > 编程 > Python > 正文

python数据结构学习之实现线性表的顺序

2020-01-04 14:26:41
字体:
来源:转载
供稿:网友

本文实例为大家分享了python实现线性表顺序的具体代码,供大家参考,具体内容如下

线性表

1.抽象数据类型表示(ADT)

类型名称:线性表 
数据对象集:线性表是n(>=0)个元素构成的有序序列(a1,a2,….,an) 
操作集:

2.线性表的顺序实现

1.表示方法: 
其中100可以自己规定,last代表线性表的长度

# 线性表定义class Lnode(object):  def __init__(self,last):    self.data = [None for i in range(100)]    self.last = last  # 线性表长度12345

2.建立空的顺序表

# 1.初始化建立空的线性表def MakeEmpty(num):  PtrL = Lnode(num)  return PtrL# 测试建立空的线性表s = MakeEmpty(10)print(s.data[0:s.last])print(s.last)12345678910

测试结果:

python,数据结构,线性表

3.按值查找

# 2.查找给定值的位置def Find(x, L):  i =0  while(i <= L.last and L.data[i] != x):    i+=1  if(i> L.last):    return -1  else:    return i# 测试查找函数num = [0,1,2,3,4,5,6,7,8,9]L = Lnode(10)for i in range(10):  L.data[i] = num[i]print("建立新的线性表")print(L.data[0:L.last])print("查找元素2")print("下标为:")print(Find(2,L))print("查找元素12")print("下标为:")print(Find(12,L)) # 找不到返回-1

测试结果:

python,数据结构,线性表

4.插入操作

# 3.插入(在第i(0<=i<=n)位置上插入一个值为x的新元素)def Insert(x,i,L):  if i<0 or i>L.last:    print("位置不合理")    return  else:    for j in range(L.last,i-1,-1):      L.data[j+1] = L.data[j]    L.data[i] = x    L.last+=1  return# 测试插入函数num = [0,1,2,3,4,5,6,7,8,9]L = Lnode(10)for i in range(10):  L.data[i] = num[i]print("建立新的线性表")print(L.data[0:L.last])print("在位序3插入元素6")Insert(6,3,L)print(L.data[0:L.last])

测试结果:

python,数据结构,线性表

5.删除操作

# 4.删除第i(0<=i<=n-1)个位置上的元素def Delete(i,L):  if i<0 or i>=L.last:    print("不存在该元素")    return  else:    for j in range(i,L.last-1):      L.data[j] = L.data[j+1]    L.last -=1    return# 测试删除函数num = [0,1,2,3,4,5,6,7,8,9]L = Lnode(10)for i in range(10):  L.data[i] = num[i]print("建立新的线性表")print(L.data[0:L.last])print("删除位序3的元素")Delete(3,L)print(L.data[0:L.last])

测试结果:

python,数据结构,线性表

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表