2016-11-19 2 views
0

デキューを作成し、その中に要素をリストするのは難しいことです。私は、create_queueとprint_queueという2つの関数を作成しました。ポインタ(頭と尾)を参照として送りましたので、それらをグローバルに宣言する必要はありません。C++デキューを作成して印刷する

#include<iostream> 
using namespace std; 

struct Nod { 
    int info; 
    Nod* next, *back; 
}; 

void create_queue(Nod*& p, Nod*& u) 
{ 
    Nod *c = new Nod; 
    cout << "c->info: "; cin >> c->info; 
    if (!p) 
    { 
     p = c; 
     p->back = NULL; 
     p->next = NULL; 
     u = p; 
    } 
    else 
    { 
     u->next = c; 
     c->back = u; 
     u = c; 
     u->next = NULL; 
    } 
} 

void print_queue(Nod*& p, Nod*& u) 
{ 
    Nod *c = p; 
    while (c) { 
     cout << c->info << " "; 
     c = c->next; 
    } 
} 


int main() 
{ 
    int n, i = 1; 
    Nod *p, *u = new Nod; 
    cout << "Nr nod: "; cin >> n; 
    while (i <= n){ 
    create_queue(p, u); 
    i++; 
    } 
    print_queue(p, u); 
    getchar(); 
} 

私がデバッガから理解したところでは、私はp->情報にアクセスできません。 問題は何ですか?

答えて

-1

修正可能なオブジェクトを関数に渡すには、醜いNod*&(参照のアドレス!)タイプは必要ありません。代わりに共通のポインタNod*を使用してください。

関連する問題