amos-tool
Version:
amos ui tool
64 lines (63 loc) • 1.48 kB
JavaScript
function Array_h(r) {
this.array = void 0 === r ? [] : new Array(r)
}
Array_h.prototype = {
length: function() {
return this.array.length
},
at: function(r) {
return this.array[r]
},
set: function(r, t) {
this.array[r] = t
},
push: function(r) {
return this.array.push(r)
},
slice: function(r, t) {
return this.array = this.array.slice(r, t)
},
concat: function(r) {
this.array = this.array.concat(r)
},
remove: function(r, t) {
t = void 0 === t ? 1 : t, this.array.splice(r, t)
},
join: function(r) {
return this.array.join(r)
},
clear: function() {
this.array.length = 0
}
};
var Queue = function() {
this._array_h = new Array_h
};
Queue.prototype = {
_index: 0,
push: function(r) {
this._array_h.push(r)
},
pop: function() {
var r = null;
return this._array_h.length() && (r = this._array_h.at(this._index), 2 * ++this._index >= this._array_h.length() && (this._array_h.slice(this._index), this._index = 0)), r
},
head: function() {
var r = null,
t = this._array_h.length();
return t && (r = this._array_h.at(t - 1)), r
},
tail: function() {
var r = null;
return this._array_h.length() && (r = this._array_h.at(this._index)), r
},
length: function() {
return this._array_h.length() - this._index
},
empty: function() {
return 0 === this._array_h.length()
},
clear: function() {
this._array_h.clear()
}
}, exports.Queue = Queue;