7、JavaScript语言实现

7.1、用ES6语法编写顺序表类

//1、创建类
class MyList {//1. initList(&L):初始化表。构造一个空的线性表。放回值应该是一个线性表initList() {//1.1、创建数组,本身就可变长this.arr = [];//1.2、线性表的元素多少this.size = 0;}//2. destroyList(&L):销毁操作。销毁线性表,并释放线性表L所占的内存空间。放回值为voiddestroyList() {this.arr = null;this.size = 0;return true;}//3. locateElem(L,e):按值查找操作。在表中L查找具有给定关键值的元素。放回一个int类型locateElem(value) {if(this.arr == null) return 0;for(var i = 0;i < this.size;i++) {if(this.arr[i] == value) return i+1;}return 0;}//5. listInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定的元素e。listInsert(pos,value) {if(this.arr == null) return false;if(pos < 1 || pos > this.size + 1) return false;//插入for(var i = this.size;this.size >= pos;i--) {this.arr[i] = this.arr[i - 1];}this.arr[pos - 1] = value;this.size++;return true;}//4. getElem(L,i):按位查找。获取表中第i个位置的元素的值。getElem(pos) {if(this.arr == null) return false;if(pos < 1 || pos > this.size) return false;return this.arr[pos -1];}//6. listDelete(&L,i,e):删除操作。删除表L中第i个位置的元素。listDelete(pos) {if(this.arr == null) return false;if(pos < 1 || pos > this.size) return false;for(var i = pos -1;i < this.size - 1;i++) {this.arr[i] = this.arr[i + 1];}this.size--;return true;}//7. PrintList(L):输出操作。按前后顺序输出线性表L的所有元素值。PrintList() {if(this.arr != null) {var str = "";for(var i = 0;i < this.size;i++) {str += this.arr[i] + " ";}console.log(str);}}//8. empty(L):判空操作。若L为空表,则放回true,否则放回false。isEmpty() {return this.arr == null;}//9. length(L):求表长。放回线性表L的长度,即L中数据元素的个数。getLength() {return this.size;}
}

7.2、编写网页进行输出测试

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="./MyList.js"></script>
</head>
<body><script>//1、测试初始化操作var list = new MyList();list.initList();//2、测试插入操作var str = "";for(var i = 1;i < 100;i++) {if(list.listInsert(i,i*100)) str += i + "号元素插入成功";}console.log(str);//3、测试判空操作if(list.isEmpty()) console.log("空表");else console.log("非空表");//4、测试求表长操作console.log(list.getLength());//5、测试按位删除操作if(list.listDelete(56)) console.log("删除成功");//6、测试按位查找的操作console.log(list.getElem(56));//7、测试按值查找的操作console.log(list.locateElem(1000));//8、测试输出操作list.PrintList();//9、测试销毁操作if(list.destroyList()) console.log("销毁成功");</script>
</body>
</html>

7.3、输出结果

1号元素插入成功2号元素插入成功3号元素插入成功4号元素插入成功5号元素插入成功6号元素插入成功7号元素插入成功8号元素插入成功9号元素插入成功10号元素插入成功11号元素插入成功12号元素插入成功13号元素插入成功14号元素插入成功15号元素插入成功16号元素插入成功17号元素插入成功18号元素插入成功19号元素插入成功20号元素插入成功21号元素插入成功22号元素插入成功23号元素插入成功24号元素插入成功25号元素插入成功26号元素插入成功27号元素插入成功28号元素插入成功29号元素插入成功30号元素插入成功31号元素插入成功32号元素插入成功33号元素插入成功34号元素插入成功35号元素插入成功36号元素插入成功37号元素插入成功38号元素插入成功39号元素插入成功40号元素插入成功41号元素插入成功42号元素插入成功43号元素插入成功44号元素插入成功45号元素插入成功46号元素插入成功47号元素插入成功48号元素插入成功49号元素插入成功50号元素插入成功51号元素插入成功52号元素插入成功53号元素插入成功54号元素插入成功55号元素插入成功56号元素插入成功57号元素插入成功58号元素插入成功59号元素插入成功60号元素插入成功61号元素插入成功62号元素插入成功63号元素插入成功64号元素插入成功65号元素插入成功66号元素插入成功67号元素插入成功68号元素插入成功69号元素插入成功70号元素插入成功71号元素插入成功72号元素插入成功73号元素插入成功74号元素插入成功75号元素插入成功76号元素插入成功77号元素插入成功78号元素插入成功79号元素插入成功80号元素插入成功81号元素插入成功82号元素插入成功83号元素插入成功84号元素插入成功85号元素插入成功86号元素插入成功87号元素插入成功88号元素插入成功89号元素插入成功90号元素插入成功91号元素插入成功92号元素插入成功93号元素插入成功94号元素插入成功95号元素插入成功96号元素插入成功97号元素插入成功98号元素插入成功99号元素插入成功 MyList.html:20:17
非空表 MyList.html:24:22
99 MyList.html:27:17
删除成功 MyList.html:30:41
5700 MyList.html:33:17
10 MyList.html:36:17
100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700 4800 4900 5000 5100 5200 5300 5400 5500 5700 5800 5900 6000 6100 6200 6300 6400 6500 6600 6700 6800 6900 7000 7100 7200 7300 7400 7500 7600 7700 7800 7900 8000 8100 8200 8300 8400 8500 8600 8700 8800 8900 9000 9100 9200 9300 9400 9500 9600 9700 9800 9900 MyList.js:71:21
销毁成功 MyList.html:41:40

8、Python语言实现

8.1、编写顺序表类

# 定义一个顺序表
class MyList:# 1. initList(&L):初始化表。构造一个空的线性表。放回值应该是一个线性表def initList(self):# print("初始化")self.arr = [None]*20self.size = 0# 2. destroyList(&L):销毁操作。销毁线性表,并释放线性表L所占的内存空间。放回值为voiddef destroyList(self):# print("销毁操作")self.arr = Noneself.size = 0return True# 3. locateElem(L,e):按值查找操作。在表中L查找具有给定关键值的元素。放回一个int类型def locateElem(self,value):if(self.arr is None):return False# print("按值查找")for i in range(0,self.size):if(value == self.arr[i]):return i + 1# 4. getElem(L,i):按位查找。获取表中第i个位置的元素的值。def getElem(self,pos):# print("按位查找")if(self.arr is None):return Falseif(pos < 1 and pos > self.size):return Falsereturn self.arr[pos - 1]# 5. listInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定的元素e。def listInsert(self,pos,value):# print("插入操作")if(self.arr is None):return Falseif(pos < 1 and pos > self.size + 1):return Falseif(pos >= len(self.arr)):newArr = [None]*(len(self.arr) * 2)for i in range(0,self.size):# print(i)newArr[i] = self.arr[i]self.arr = newArrfor i in range(pos,self.size - 1,-1):self.arr[i] = self.arr[i - 1]self.arr[pos - 1] = value# print(self.arr[pos - 1])self.size += 1return True# 6. listDelete(&L,i,e):删除操作。删除表L中第i个位置的元素。def listDelete(self,pos):# print("删除操作")if(self.arr is None):return Falseif(pos < 1 and pos > self.size):return Falsefor i in range(pos - 1,self.size - 1):self.arr[i] = self.arr[i + 1]self.size -= 1return True# 7. PrintList(L):输出操作。按前后顺序输出线性表L的所有元素值。def PrintList(self):if(self.arr is not None):# print("输出操作")s = ""for i in range(0,self.size):s += str(self.arr[i]) + " "print(s)# 8. empty(L):判空操作。若L为空表,则放回true,否则放回false。def isEmpty(self):# print("判空操作")return self.arr is None# 9. length(L):求表长。放回线性表L的长度,即L中数据元素的个数。def getLength(self):# print("获取长度")return self.size

8.2、编写顺序表的测试类

from MyList import *# 1、测试初始化操作
list = MyList()
list.initList()# 2、测试插入操作
s = ""
for i in range(1,100):if(list.listInsert(i,i*100)):s += str(i) + "号元素插入成功 "
print(s)# 3、测试判空操作
if(list.isEmpty()):print("空表")
else:print("不是空表")# 4、测试求表长操作
print(list.getLength())# 5、测试按位删除操作
if(list.listDelete(56)):print("删除成功")# 6、测试按位查找的操作
print(list.getElem(56))# 7、测试按值查找的操作
print(list.locateElem(1000))# 8、测试输出操作
list.PrintList()# 9、测试销毁操作
if(list.destroyList()):print("销毁成功")

8.3、测试结果

1号元素插入成功 2号元素插入成功 3号元素插入成功 4号元素插入成功 5号元素插入成功 6号元素插入成功 7号元素插入成功 8号元素插入成功 9号元素插入成功 10号元素插入成功 11号元素插入成功 12号元素插入成功 13号元素插入成功 14号元素插入成功 15号元素插入成功 16号元素插入成功 17号元素插入成功 18号元素插入成功 19号元素插入成功 20号元素插入成功 21号元素插入成功 22号元素插入成功 23号元素插入成功 24号元素插入成功 25号元素插入成功 26号元素插入成功 27号元素插入成功 28号元素插入成功 29号元素插入成功 30号元素插入成功 31号元素插入成功 32号元素插入成功 33号元素插入成功 34号元素插入成功 35号元素插入成功 36号元素插入成功 37号元素插入成功 38号元素插入成功 39号元素插入成功 40号元素插入成功 41号元素插入成功 42号元素插入成功 43号元素插入成功 44号元素插入成功 45号元素插入成功 46号元素插入成功 47号元素插入成功 48号元素插入成功 49号元素插入成功 50号元素插入成功 51号元素插入成功 52号元素插入成功 53号元素插入成功 54号元素插入成功 55号元素插入成功 56号元素插入成功 57号元素插入成功 58号元素插入成功 59号元素插入成功 60号元素插入成功 61号元素插入成功 62号元素插入成功 63号元素插入成功 64号元素插入成功 65号元素插入成功 66号元素插入成功 67号元素插入成功 68号元素插入成功 69号元素插入成功 70号元素插入成功 71号元素插入成功 72号元素插入成功 73号元素插入成功 74号元素插入成功 75号元素插入成功 76号元素插入成功 77号元素插入成功 78号元素插入成功 79号元素插入成功 80号元素插入成功 81号元素插入成功 82号元素插入成功 83号元素插入成功 84号元素插入成功 85号元素插入成功 86号元素插入成功 87号元素插入成功 88号元素插入成功 89号元素插入成功 90号元素插入成功 91号元素插入成功 92号元素插入成功 93号元素插入成功 94号元素插入成功 95号元素插入成功 96号元素插入成功 97号元素插入成功 98号元素插入成功 99号元素插入成功
不是空表
99
删除成功
5700
10
100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700 4800 4900 5000 5100 5200 5300 5400 5500 5700 5800 5900 6000 6100 6200 6300 6400 6500 6600 6700 6800 6900 7000 7100 7200 7300 7400 7500 7600 7700 7800 7900 8000 8100 8200 8300 8400 8500 8600 8700 8800 8900 9000 9100 9200 9300 9400 9500 9600 9700 9800 9900
销毁成功Process finished with exit code 0

五种编程语言解释数据结构与算法——顺序表3(JavaScript与Python语言实现)相关推荐

  1. python与js通用的数据结构_五种编程语言解释数据结构与算法——顺序表3(JavaScript与Python语言实现)...

    7.JavaScript语言实现 7.1.用ES6语法编写顺序表类 //1.创建类 class MyList { //1. initList(&L):初始化表.构造一个空的线性表.放回值应该是 ...

  2. 数据结构与算法顺序表数组版

    博主还在学校,写网络编程特别是后面的线程和多路I/O实在是太费精力,所以博主先把数据结构多跟新一点,也正好把学校的C语言数据结构的作业做了,正好一举两得 这个内容比较简单,就不再细说. #includ ...

  3. 数据结构与算法 | 顺序表

    顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储.在数组上完成数据的增删查改. 对于表,栈,队列,树,图等等数据结构,我们都可通过选择顺序结构或者链式结构来进行实 ...

  4. GA用什么计算机语言写,PLC五种编程语言

    <PLC五种编程语言>由会员分享,可在线阅读,更多相关<PLC五种编程语言(21页珍藏版)>请在人人文库网上搜索. 1.精选文库 PLC的五种标准编程语言 设计的.根据国际电工 ...

  5. DayDayUp:博主,在此,祝愿大家(十五种编程语言输出),2019年春节快乐!猪年诸事大吉!学要有所成,劳要有所获!

    DayDayUp:博主,在此,祝愿大家(十五种编程语言输出),2019年春节快乐!猪年诸事大吉!学要有所成,劳要有所获! 感谢大家,这些年以来的支持!感谢!感恩! 十五种编程语言输出 祝大家们新年快乐 ...

  6. 十年后可能消失的五种编程语言

    本文作者从自己的观点出发,介绍了未来 20 年内可能消失的五种编程语言,并给出了具体的原因.最后对想要学习编程的初学者给出了学习建议. >>>> 随着时间的流逝,程序员们发现了 ...

  7. 新年快乐用计算机语言表达,DayDayUp:博主,在此,祝愿大家(十五种编程语言输出),2019年春节快乐!猪年诸事大吉!学要有所成,劳要有所获!...

    DayDayUp:博主,在此,祝愿大家(十五种编程语言输出),2019年春节快乐!猪年诸事大吉!学要有所成,劳要有所获! 感谢大家,这些年以来的支持!感谢!感恩! 十五种编程语言输出 祝大家们新年快乐 ...

  8. [小森数据结构]看电影-顺序表技术精讲

    故事前研(言) 小森去看电影<<流浪地球2>>的时候买电影票的场景. 突然一个叫高启强的人买电影票 拉了两个Hei友,来看电影 <<流浪地球2>> 当场 ...

  9. 数据结构之——《顺序表》

    数据结构之--<顺序表> 1.含义 2.分类 3.接口函数实现 4.顺序表的优缺点 1.含义 顺序表示用一段纹理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组 ...

最新文章

  1. [BZOJ2216][Poi2011]Lightning Conductor[决策单调性优化]
  2. DDD领域驱动设计简介
  3. MySQL技术内幕读书笔记(一)——Mysql体系结构和存储引擎
  4. asp net html.dropdownlist viewdata 指定选中项_ASP.NET Web API基础(05)--- 基于JWT的身份认证 - 高原秃鹫...
  5. ue4 网络代码分析
  6. 《诛仙Ⅰ》票房破3亿 QQ阅读《诛仙》小说全平台收入增长11.7倍
  7. 美国西北大学 计算机工程专业排名,权威首发!2018年USNews美国大学研究生计算机工程专业排名榜单...
  8. 基于 Flink 构建 CEP 引擎的挑战和实践
  9. 动态规划实战2-leetcode 62.unique path
  10. 最小生成树详细讲解(Prime算法+Kruskalsuanfa)
  11. 步科触摸屏程序上传 程序解密步骤方法
  12. 如何编写一份合格的架构设计文档
  13. 解决服务器上传的tar格式的中不可以解压tar格式的压缩包 zip解压中文会在文件中显示乱码
  14. php流程管理软件,MYSQL数据库管理软件PHPAdmin操作流程
  15. 转1:Python字符编码详解
  16. OpenFlow协议初探——OpenFLow中的流和流表
  17. 安检x光机原理计算机实现,安检X光机组成及工作原理(图文)
  18. 深度长文:我对CQRS/EventSourcing架构的思考
  19. Springboot毕设项目博物馆参观预约管理系统gkb2s(java+VUE+Mybatis+Maven+Mysql)
  20. 22-Mybatis缓存相关设置对一级缓存和二级缓存的影响

热门文章

  1. SLAM常用数据集(2)
  2. redis 集群环境部署
  3. ubuntu 14.04 LTS(64bit) Anacoda2环境下安装gensim
  4. Nginx学习之八-惊群问题
  5. 三层架构dao service 表示层 115721935
  6. dj鲜生-用户中心-个人信息
  7. python-循环控制-continue
  8. php-fpm的pool php-fpm慢执行日志 open_basedir php-fpm进程管理
  9. Linux 下几款程序内存泄漏检查工具
  10. PHP规范之PSR-1