javascript数据结构之顺序表

关于线性表的概念这里就不赘述了,可以自行百度和查阅资料,线性表按照存储(物理)结构分为顺序存储和链式存储,每种存储方式的不同决定了它的实现代码是不同的:

顺序存储的特点就是在内存中选一块连续的地址空间,然后将线性表放入其中,这样做便于线性表的存取,但是不利于插入和删除,而且在事先无法确定线性表长度的前提下可能会造成内存浪费或溢出。

这篇我是用javascript来实现线性表中的顺序表。

下面上代码:

 1 var orderList = function(){
 2   var items = [];  //线性表内部定义一个容量为10的数组用来存储数据
 3   this.items = items; //这里利用了数组是引用类型,实例属性和局部变量其实是指向同一个数组的
 4
 5   this.findElem = function(data){ //在表中寻找元素,返回对应的地址位置
 6     var Symbol = false;
 7     var temp = 0;
 8     for(var i = 0;i < items.length;i++){
 9       if(items[i] == data){
10         Symbol = true;
11         temp = i+1;
12       }
13     }
14     if(Symbol){
15         return temp;
16     }
17   };
18
19   this.getElem = function(num){ //获得元素操作,返回获得的元素
20     if(num > items.length || num < 1 || items.length == 0){
21       return false;
22     }else{
23       return items[num - 1]; //注意数组下标是从0开始的
24     }
25   };
26
27   this.ListInsert = function(data,pos){ //插入元素操作,返回新的数组
28     if(pos > items.length || pos < 1 || items.length == 0){
29       return false;
30     }else{
31       for(var i = items.length;i >= pos-1;i -= 1){
32         items[i+1] = items[i];
33       }
34       items[pos-1] = data;
35       return items;
36     }
37   };
38
39   this.ListDelete = function(pos){ //删除元素操作,返回删除的元素
40     var temp = items[pos-1];
41     if(pos < 1 || pos > items.length || items.length == 0){
42       return false;
43     }else{
44       for(var i = pos;i < items.length;i++){
45         items[i-1] = items[i];
46       }
47       return temp;
48     }
49   };
50
51
52 };
53
54 //实例化测试一下
55 var list = new orderList();
56 list.items.push("a","b","c","d","e","f","g");
57 console.log(list.items);
58 console.log(list.findElem("c"));
59 console.log(list.getElem(1));
60 console.log(list.ListInsert("j",3));
61 console.log(list.ListDelete(2));
62 console.log(list.items);

下面是在chrome的console里面调试的结果,亲测无误。

时间: 2024-10-07 17:15:22

javascript数据结构之顺序表的相关文章

数据结构。顺序表

#include <stdio.h>#include <stdlib.h> #define LIST_INIT_SIZE 100#define LIST_INCREMENT 10typedef struct Point   //element type{    int x;    int y;}Point;typedef Point ElemType;typedef struct          //list type{    ElemType *elem;     //data

Windows 已在 数据结构_顺序表.exe 中触发一个断点——new和delete注意事项

实现数据结构的顺序表的类时,输入,改,删,查都可以,但是最后析构函数时持续出错 错误提示"Windows 已在 数据结构_顺序表.exe 中触发一个断点" int *elem=new int(LIST_INIT_SIZE); if(!elem)cout<<"overflow"<<endl; if(leng>LIST_INIT_SIZE) cout<<"error"; else {    length=le

数据结构学习---顺序表

在准备考研的时候就想发学习笔记,想来已经过了多时.现在在培训班又要展开学习,说明一件事:408是指导学习研究计算机的基础!对于编写程序而言,数据结构与算法,是关键!我想其他的组成原理,计算机网络,操作系统也很重要,这是一个system,有必要有需要学习认真的学习之.希望这个是好的开始! ---------------------------------------------------------------- 昨天晚上看浙大在网易云课上的视频,没有上过浙大的我还是非常激动,哈哈,三个短视频看

数据结构之顺序表

好不容易linux的课程结束了,下面就进入了数据结构的课程,对于没学过这本书的我,只能弱弱的说一句,数据结构真的好难,在学习的过程中,觉得最经典的一句话便是,数据结构+算法=程序.我只想说理解数据结构真的好难,太富有逻辑性了,有时候真的还需要发挥自己的空间想象能力,几天的学习,其实还算可以吧,下面我就给大家写一点线性表的基本操作吧,我尽可能的讲解的清楚一些,方便看的人有兴趣能有自己实现. #include <stdio.h> #include <stdlib.h> #include

C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用

摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动态数组)STL vector进行分析和总结. 引言 因为前段时间对台大的机器学习基石和技法课程进行了学习,发如今详细的实现中经常涉及到各种类型的数据结构,比方线性表.二叉树.图等,在使用这些数据结构时感到有些吃力.主要是对一些主要的数据结构理解的不够.所以趁着暑假假期.近期一段时间总会抽出时间复习一

【数据结构】顺序表和链表

一.顺序表 顺序表定义 :顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素.使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表.顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中. 顺序表可以分为静态顺序表和动态顺序表,静态较为简单,本文提供全部动态顺序表基本操作的代码. 顺序表的基本操作:

数据结构复习---顺序表和单链表

1.前言: 最近比较浮躁,想学习一门新的技术却总是浅尝辄止,遇到不懂的地方就想跳过去,时间长了,心态就有点崩了.静下心来,去喝了几碗心灵鸡汤.鸡汤博主感动到了我:"无专注,无风景.不要太贪心,一次只做一件事,而且只做最重要的事.".于是乎,我把家里翻了个底朝天,找到了我垫在床底下的<数据结构>这本书,觉得自己是时候静下心来好好复习一下基础了.今天刚看到顺序表和链表,把我的学习心得记录在这里.也希望自己能坚持,老老实实的把这本书复习完. 2.数据结构的重要性: 讲一门知识之前

数据结构:顺序表的基本操作

顺序表作业: #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; typedef int T; class SeqList{ private: T *data; int MaxSize; ///顺序表最多可以存放的元素个数. int last; ///顺序表最后一个元素的下标,初始值为-1. public: SeqList(int sz); void Input();

计蒜客课程数据结构(顺序表)

1.线性表是由相同数据类型的 n 个数据元素a0,a1,......,an-1 组成的有限序列.一个数据元素可以由若干个数据项组成.若用 L 命名线性表,则其一般表示如下: L=(a0,a1,......,an-1) 其中, a0?? 是唯一的“第一个”数据元素,又称为表头元素:an-1?? 是唯一的“最后一个”数据元素,又称为表尾元素. 线性表按照存储结构,可以分为顺序表和链表两种类型. 2.顺序表是在计算机内存中以数组形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构.