列表
function List(){
this.listSize=0;
this.pos=0;
this.dataStore=[];
this.clear=clear;
this.find=find;
this.toString=toString;
this.insert=insert;
this.append=append;
this.remove=remove;
this.front=front;
this.end=end;
this.prev=prev;
this.next=next;
this.length=length;
this.currPos=currPos;
this.moveTo=moveTo;
this.getElement=getElement
this.contains=contains;
}
function append(element){
this.dataStore[this.listSize++]=element;
}
function find(element){
for(var i=0;i<this.dataStore.length;++i){
if(this.dataStore[i]==element){
return i;
}
}
return -1;
}
function remove(element){
var foundAt=this.find(element);
if(foundAt>-1){
this.dataStore.slice(foundAt,1);
--this.listSize;
return
}
return false;
}
function length(){
return this.listSize;
}
function toString(){
return this.dataStore;
}
function insert(element,after){
var insertPos=this.find(after);
if(insertPos>-1){
this.dataStore.splice(insertPos+1,0,element);
++this.listSize;
return true;
}
return false;
}
function clear(){
delete this.dataStore;
this.dataStore.length=0;
this.listSize=this.pos=0;
}
function contains(element){
for(var i=0;i<this.dataStore.length;++i){
if(this.dataStore[i]==element){
return true;
}
}
return false;
}
function front(){
this.pos=0;
}
function end(){
this.pos=this.listSize-1;
}
function prev(){
if(this.pos>0){
--this.pos;
}
}
function next(){
if(this.pos<this.listSize){
++this.pos;
}
}
function currPos(){
return this.pos;
}
function moveTo(position){
this.pos=position;
}
function getElement(){
return this.dataStore[this.pos];
}
var names=new List();
names.append("小红");
names.append("小绿");
names.append("小黄");
for(names.front();names.currPos()<names.length();names.next()){
console.log(names.getElement());
}
栈
function Stack(){
this.dataStore=[];
this.top=0;
this.push=push;
this.pop=pop;
this.peek=peek;
this.clear=clear;
this.length=length;
}
function push(element){
this.dataStore[this.top++]=element;
console.log(this.dataStore);
}
function pop(){
return this.dataStore[--this.top];
}
function peek(){
return this.dataStore[this.top-1];
}
function length(){
return this.top;
}
function clear(){
this.top=0;
}
var s=new Stack();
s.push("小红第一");
s.push("小黄第二");
s.push("小绿第三");
s.push("小紫第四");
console.log("栈的长度为",s.length());
console.log("栈顶",s.peek());
console.log("出栈",s.pop());
function isPalindrome(word){
var s=new Stack();
for(var i=0;i<word.length;i++){
s.push(word[i]);
}
var rword="";
console.log(s);
while(s.length()>0){
rword+=s.pop();
}
if(rword==word){
return true;
}else{
return false;
}
}
var word="racecar";
console.log(isPalindrome(word));