私の挿入メソッドでは、Pが最初の値(0)を取り、15がリンクリストの最後の値である必要があります。ただし、リストを印刷するときは、p-prevではなくp-> succを実行してアイテムを印刷する必要があり、15、14、13....;が印刷されます。これは正しいですか?または、関数の実装が間違っていますか?
class Node{
public:
int value;
Node *succ;
Node *prev;
Node(int val, Node *s=NULL, Node *p=NULL)
:value(val),succ(s),prev(p){}
Node *insert(Node *p,Node *n)
{
if(n==NULL)
return p;
if(p==NULL)
return n;
n->succ=p;
if(p->prev)
p->prev->succ=n;
n->prev=p->prev;
p->prev=n;
return n;
}
int main(int argc, char *argv[]) {
Node *p= NULL;
for(int i = 0; i<=15; i++){
p = insert(p, new Node(i));
}
while(p){
cout<<p->value;
head=p->succ;
}