在内容闲暇时间,将做工程过程中常用的内容备份一次,下边内容是关于数据结构面试题 - 双向链表建立、插入和删除的内容,希望能对各位朋友有好处。
#include<iostream>
using std::cout;
using std::endl;
public:
Node(T t):item(t),previous(0),next(0){}
T item;
};
public:
TwoWayLinkedList():length(0),head(0),tail(0){};
~TwoWayLinkedList();
int getLength(){return length;}
void add(T t);
T get(int i);
void insert(int i,T t);
void del(int i);
void display();
private:
int length;
};
head=new Node<T>(t);
tail=head;
}
else {
}
length++;
}
int j=0;
p=p->next;
j++;
}
T item=(p->T);
return item;
}
p->next=head;
head->previous=p;
head=p;
length++;
}
else{
int j=0;
t=t->next;
j++;
}
n->next=t->next;
n->previous=t;
(t->next)->previous=n;
t->next=n;
length++;
}
}
template<typename T> void TwoWayLinkedList<T>::del(int i){ 删除下标为i的元素
else{
delete head;
head=0;
tail=0;
}
head->previous=0;
delete t;
}
tail->next=0;
delete t;
}
else{
t=t->next;
i--;
}
t->next=p->next;
(p->next)->previous=t;
delete p;
}
length--;
}
}
p=t;
t=t->next;
delete p;
}
}
T item;
int i=0;
while(i<length){
item=this->get(i);
i++;
cout<<item<<" ";
}
cout<<endl;
}