Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中定义队列数据结构_Javascript - Fatal编程技术网

在JavaScript中定义队列数据结构

在JavaScript中定义队列数据结构,javascript,Javascript,我只是想学习JavaScript。我想设计一个采用以下格式的队列: [{(0,0),0}], [{(0,1),1}], [{(0,2),2}] 所以我试着用下面的方法定义队列,但显然它是不正确的 var queue = [{}] ; 首先,JS中没有“耦合”数据结构,因此您的(0,1)必须是数组[0,1]、对象:{x:0,y:1}或自定义类型(见下文) 在javascript中,结构不是强类型的,因此您只需定义根是数组还是对象。在本例中,它似乎是一个数组 var queue = []; 然

我只是想学习JavaScript。我想设计一个采用以下格式的队列:

[{(0,0),0}], [{(0,1),1}], [{(0,2),2}]
所以我试着用下面的方法定义队列,但显然它是不正确的

var queue = [{}] ;
首先,JS中没有“耦合”数据结构,因此您的
(0,1)
必须是数组
[0,1]
、对象:
{x:0,y:1}
或自定义类型(见下文)

在javascript中,结构不是强类型的,因此您只需定义根是数组还是对象。在本例中,它似乎是一个数组

var queue = [];
然后,把你需要的东西推到队列中。例如:(我发明了字段名,使它们适合您的用例)

正如我所说,您可以使用另一种表示,例如:
[[0,0],0]
,或者定义自定义类型(面向对象)

首先,JS中没有“耦合”数据结构,因此您的
(0,1)
必须是数组
[0,1]
、对象:
{x:0,y:1}
或自定义类型(见下文)

在javascript中,结构不是强类型的,因此您只需定义根是数组还是对象。在本例中,它似乎是一个数组

var queue = [];
然后,把你需要的东西推到队列中。例如:(我发明了字段名,使它们适合您的用例)

正如我所说,您可以使用另一种表示,例如:
[[0,0],0]
,或者定义自定义类型(面向对象)


对于要使用
数组保存值的队列

var myQueue = []  //Empty array
通过将队列推送到数组中,将其添加到队列中

myQueue.push(new Person(...))
var nextInLine = myQueue.shift()
通过将队列移出数组来从队列中获取某些内容

myQueue.push(new Person(...))
var nextInLine = myQueue.shift()

对于要使用
数组保存值的队列

var myQueue = []  //Empty array
通过将队列推送到数组中,将其添加到队列中

myQueue.push(new Person(...))
var nextInLine = myQueue.shift()
通过将队列移出数组来从队列中获取某些内容

myQueue.push(new Person(...))
var nextInLine = myQueue.shift()

您可以按如下方式构建队列:

function Queue () {
 this.dataStore = [];
 this.enqueue = enqueue;
 this.dequeue = dequeue;
 this.front = front;
 this.back = back;
 this.toString = toString;
 this.empty = empty;
}

// Insetion
function enqueue(element){
 this.dataStore.push(element);
}

// Deletion
function dequeue(){
 this.dataStore.shift();
}

// front
function front(){
 return this.dataStore[0];
}

//back
function back(){
 return this.dataStore[this.dataStore.length-1];
}

//toString
function toString(){
  var retStr = '';
  for(var i = 0; i < this.dataStore.length; i++){
    retStr = retStr + this.dataStore[i]
  }
  return retStr;
 }

//empty
function empty(){
 if(this.dataStore.length === 0) {
  return true;
 }
 return false;
}
函数队列(){
this.dataStore=[];
this.enqueue=enqueue;
this.dequeue=dequeue;
this.front=front;
this.back=back;
this.toString=toString;
this.empty=空;
}
//插入
函数排队(元素){
this.dataStore.push(元素);
}
//删除
函数出列(){
this.dataStore.shift();
}
//正面
函数前(){
返回此.dataStore[0];
}
//背
函数back(){
返回this.dataStore[this.dataStore.length-1];
}
//托斯特林
函数toString(){
var retStr='';
对于(var i=0;i

现在将其用作构造函数方法,var q=new Queue()。

您可以按如下方式构建队列:

function Queue () {
 this.dataStore = [];
 this.enqueue = enqueue;
 this.dequeue = dequeue;
 this.front = front;
 this.back = back;
 this.toString = toString;
 this.empty = empty;
}

// Insetion
function enqueue(element){
 this.dataStore.push(element);
}

// Deletion
function dequeue(){
 this.dataStore.shift();
}

// front
function front(){
 return this.dataStore[0];
}

//back
function back(){
 return this.dataStore[this.dataStore.length-1];
}

//toString
function toString(){
  var retStr = '';
  for(var i = 0; i < this.dataStore.length; i++){
    retStr = retStr + this.dataStore[i]
  }
  return retStr;
 }

//empty
function empty(){
 if(this.dataStore.length === 0) {
  return true;
 }
 return false;
}
函数队列(){
this.dataStore=[];
this.enqueue=enqueue;
this.dequeue=dequeue;
this.front=front;
this.back=back;
this.toString=toString;
this.empty=空;
}
//插入
函数排队(元素){
this.dataStore.push(元素);
}
//删除
函数出列(){
this.dataStore.shift();
}
//正面
函数前(){
返回此.dataStore[0];
}
//背
函数back(){
返回this.dataStore[this.dataStore.length-1];
}
//托斯特林
函数toString(){
var retStr='';
对于(var i=0;i

现在将其用作构造函数方法,var q=new Queue()。

JS对象(
{}
)是基于键:值的。如果只需要值,就可以使用数组(
[]
),我通常喜欢创建新类型来定义复杂的数据结构<代码>[新用户(新位置(0,0),0),…]
(或任何可能的内容)通常对我来说更容易读懂一个非常小的深度。然后在您的队列中保留这些对象?JS对象(
{}
)是基于键:值的。如果只需要值,就可以使用数组(
[]
),我通常喜欢创建新类型来定义复杂的数据结构
[新用户(新位置(0,0),0),…]
(或任何可能的内容)通常更容易阅读一个非常小的深度。然后在您的队列中保留这些对象?