实验一线性表的基本操作实现及其应用(JavaScript实现)

来源:互联网 发布:软件著作权 代理 编辑:程序博客网 时间:2024/04/29 16:56

实验一线性表的基本操作实现及其应用(JavaScript实现)

实验目的

  1. 熟练掌握线性表的结构特点, 掌握顺序表的基本操作。
  2. 巩固 C++相关的程序设计方法与技术。
  3. 学会使用顺序表解决实际问题。

实验内容

  1. 顺序表的建立与操作实现
    建立 n 个元素的顺序表( n 的大小和表里数据自己确定) , 实现相关的操作: 输出, 插
    入, 删除, 查找等功能。 编写完整程序实现, 程序语言不限定, 使用技术形式不定。
  2. 实际问题的解决( *)
    使用顺序表来实现约瑟夫环问题。

实验步骤

  1. 依据实验内容分别说明实验程序中用到的数据类型的定义;
  2. 相关操作的算法表达;
  3. 完整程序
  4. 总结、 运行结果和分析。
  5. 总体收获和不足, 疑问等。

实验要求

  1. 按照数据结构实验任务书, 提前做好实验预习与准备工作。
  2. 加“*”为选做题。 做好可加分。
  3. 严格按照数据结构实验报告模板和规范, 及时完成实验报告。
  4. 在个人主页上发文章

//判断线性表是否为空,若为空返回true,否则false

function listEmpty(list) {    return list.length > 0 ? false : true;}

//清空线性表

function clearList(list) {    list.length = 0;}

//返回位置为i的元素

function getElem(list, i) {    if (list.length > i) {        return list[i];    } else {        return -1;    }}

//在线性表中查找和给定值相等的元素,若找到返回位置,否则返回-1

function locateElem(list, l) {    for (var i=0;i<list.length;i++) {        if (list[i] == l) {            return i;        }    }    return -1;}

//在线性表的第j个位置插入元素e,插入失败弹窗提醒

function listInsert (list, j, e) {    //alert(list.length < j)    if (list.length < j) {        alert('插入元素失败');    } else if (list.length == i) {        list.push(e);    } else {        list.length++;        for(var i=list.length;i>j;i--){            list[i-1] = list[i-2];        }        list[j] = e;    }}

//删除线性表中指定位置的元素,删除失败弹窗提醒

function listDelete (list, j) {    if (list.length <= j){        alert('删除失败');    } else {        for (var i=j;i<list.length-1;i++) {            list[i] = list[i+1];        }        list.length--;    }}

// 测试代码

var arr = [];for (var i=0;i<23;i++){    arr[i] = i;}alert(getElem ( arr, 21 ));alert(locateElem ( arr, 7 ));listInsert (arr, 3, 5);listDelete (arr, 5);alert(arr);

// 测试代码

var arr = [];for (var i=0;i<23;i++){    arr[i] = i;}alert(getElem ( arr, 21 ));alert(locateElem ( arr, 7 ));listInsert (arr, 3, 5);alert(arr);listDelete (arr, 0);alert(arr);

运行结果

返回位置为21的元素

在线性表中查找和给7相等的元素,若找到返回位置

在线性表的第3个位置插入元素5

删除线性表中第0个元素

总结

其实JS中有个splice() 方法,那就不用慢慢写了……

  • 定义和用法

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。 注释:该方法会改变原始数组。

  • 语法

arrayObject.splice(index,howmany,item1,…..,itemX)

index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。

  • 返回值
  • -

类型:Array
包含被删除项目的新数组,如果有的话。

  • 说明

splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。 如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

阅读全文
0 0
原创粉丝点击