实验二 线性表-顺序表(JavaScript实现)
实验目的
巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题。
实验内容
建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入、删除、查找等操作。分别输出结果。
要求:
用顺序表来实现。
实验步骤
//建立一个长度为5的数组
var items=new Array(5);
items = [];
this.items = items;
//设置Symbol的值为false,当它为true时返回所寻找元素的位置
this.findElem = function (data) {
var Symbol = false;
var temp = 0;
for (var i = 0; i < items.length; i++) {
if (items[i] == data) {
Symbol = true;
temp = i + 1; //元素位置
}
}
if (Symbol) {
return temp;
}
};
//按元素位置查找,返回元素内容
this.getElem = function (num) {
if (num > items.length || num < 1 || items.length == 0) {
return false;
} else {
return items[num - 1]; //数组下标是从0开始,故(-1)
}
};
//插入元素
this.ListInsert = function (data, poi) {
if (poi > items.length || poi < 1 || items.length == 0) {
return false;
} else {
for (var i = items.length; i >= poi - 1; i--) {
items[i + 1] = items[i]; //将 poi-1 后面的元素都往后移
}
items[poi - 1] = data;
return items; //返回数组
}
};
//删除元素
this.ListDelete = function (poi) {
var temp = items[poi - 1];
if (poi < 1 || poi > items.length || items.length == 0) {
return false;
} else {
for (var i = poi; i < items.length; i++) {
items[i - 1] = items[i];
}
return temp;
}
};
//测试代码
var list = new orderList(); //创建一个新表
list.items.push("小王 80", "小明 60", "晓红 70" ); //向空数组中添加元素
console.log(list.items); //显示所有元素
console.log(list.findElem("小明 60")); //按内容查找
console.log(list.getElem(1)); //按位置查找
console.log(list.ListInsert("王晶 90", 2)); //在第三个元素前面插入一个元素
console.log(list.ListDelete(3)); //删除第二个元素
console.log(list.items); //显示所有元素
测试结果