2016-10-30 13 views
-5

私はこのコードに固執していますのでプログラミングには新しかったです。リンクリストを実装し、コメントに記載されている関数を適用しようとしています。 プログラムをデバッグするときにエラーは表示されませんが、コードを実行すると「コンソールアプリケーションが動作しなくなりました」と表示されます。 ここで何が問題なのか分かりません。なぜそれは機能しませんか?私のコードで何が問題になっていますか?出力は表示されません

#include<iostream> 
#include<conio.h> 
using namespace std; 

/*• InsertNodeAtFront() 
• InsertNodeAtBack() 
• PrintList() 
*/ 

class list { 
struct node { 
    int data; 
    node* next; 
}; 
node *head; 
node *current; 
public: 
    list() { 
     head = NULL; 
     current = NULL; 
    } 

    void InsrtAtFront(int n) { 
     node *temp = new node; 
     temp->data = n; 
     temp->next = NULL; 
     if (head == NULL) { 
      temp = head; 
     } 
     else { 
      temp->next = head; 
      head = temp; 
     } 
} 
    void InsrtAtBack(int a) { 
     node *temp1 = new node; 
     temp1->data = a; 
     temp1->next = NULL; 
     if (head == NULL) { 
      temp1 = head; 
     } 
     else { 
      current = head; 
      while (current->next!=NULL){ 
       current = current->next; 
      } 
      current = temp1; 
     } 
    } 
    void print() { 
     current = head; 
     while (current->next != NULL) { 
      cout << current->data; 
      current = current->next; 
     } 
    } 
}; 

void main() { 
    list obj1, obj2, obj3; 
    obj3.print(); 
    obj1.InsrtAtFront(5); 
    obj1.InsrtAtFront(7); 
    obj1.InsrtAtFront(9); 
    obj3.print(); 
    obj2.InsrtAtBack(2); 
    obj2.InsrtAtBack(4); 
    obj2.InsrtAtBack(6); 
    obj3.print(); 
} 
+4

このような問題を解決する正しいツールは、デバッガです。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –

+0

@πάνταῥεῖ、あなたはそのコメントをサイドに格納しているのでしょうか、それともプラグインするためのブラウザマクロがありますか?あなたは超高速に追加することができます:) – StoryTeller

+1

@StoryTellerここに行く:https://chrome.google.com/webstore/detail/insert-snippet/nfhllbdppejecjnhnjjagjhpcbjhkcpf?utm_source=chrome-app-launcher-info-dialog –

答えて

0
list() { 
    head = NULL; 
    current = NULL; 
} 
void print() { 
    current = head; 
    while (current->next != NULL) { 
     cout << current->data; 
     current = current->next; 
    } 
} 
//in main 
list obj1, obj2, obj3; 
obj3.print(); 

Soがあなたは頭にNULLを入れ、次に頭にある間に使用しようとしていて、それはヌルです。

関連する問題