このようなコードがあって、
for (int i = 1; i < 10; i++) {
p->next = new LinkedList(i);
p = p->next;
}の部分が納得するような納得しないような変な感じがしました。
headポインタと同じところを示すから、一つずつiをあげていけば配列をしますのは分かります。
しかし、p=p->nextの部分がなんだか気持ち悪くて、
ポインタを配列みたいに使うなら、実際に配列にいれたらいいじゃないかと思ってしまいました。
ここの部分を丁寧に説明していただけると、とても助かります。
よろしくお願いします
p->next = new LinkedList(i);
p = p->next;
の部分が具体的にどうなるのか手順を提示してくれると、とても助かります
コード #include <iostream> using namespace std; class LinkedList { public: LinkedList *next; int data; LinkedList(int data); ~LinkedList(); }; LinkedList::LinkedList(int data) { this->next = NULL; this->data = data; cout << "new: " << this->data << ": " << this << endl; } LinkedList::~LinkedList() { cout << "delete: " << this->data << ": " << this << endl; } int main(int argc, char *argv[]) { LinkedList *head = new LinkedList(0); LinkedList *p = head; for (int i = 1; i < 10; i++) { p->next = new LinkedList(i); p = p->next; } for (p = head; p != NULL; p = p->next) { cout << "p->data=" << p->data << endl; } for (p = head; p != NULL;) { LinkedList *tmp = p->next; delete p; p = tmp; } return 0; }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。