연결리스트의 배열이 왜 안될까요.. 하아...
한지잠
#include iostream#include fstreamusing namespace std;
class Node{ friend class Graph;private: int data; int edge; Node* link;};
class Graph{public: void Input(); void Make_adj(); void Display_Graph();private: int V_Number; int** inp_Matrix; Node* adj_Graph;};
void Graph::Input(){ ifstream FInput(input.txt); FInput V_Number; inp_Matrix = new int*[V_Number + 1];
for(int i = 0; i = V_Number; i++){ inp_Matrix[i] = new int[V_Number]; for(int j = 0; j = V_Number; j++){ FInput inp_Matrix[i][j]; } } Make_adj();}
void Graph::Make_adj(){ adj_Graph = new Node[V_Number];
for(int i = 0; i = V_Number; i++){ Node* StartNode = new Node; StartNode-data = i; for(int j = 0; j = V_Number; j++){ if(inp_Matrix[i][j] != 0){ Node* newNode = new Node; newNode-data = j; newNode-edge = inp_Matrix[i][j]; while(StartNode-link != NULL){ StartNode = StartNode-link; } StartNode-link = newNode; } } adj_Graph[i].link = StartNode; }}
void Graph::Display_Graph(){ for(int i = 0; i = V_Number; i++){ cout Node i -- ; while(adj_Graph[i].link != NULL){ adj_Graph[i] = *adj_Graph[i].link; cout adj_Graph[i].data | adj_Graph[i].edge -- ; } cout 00 endl; }}
int main(){ Graph aa; aa.Input(); aa.Display_Graph(); return 0;}
보시다시피 에러는 없는데, 컴파일을 시키면 오류가 발생한다고 프로그램을 닫으라고 하네요..
포인터쪽에 문제가 있는거 같은데.. 제가 포인터는 잼병이라.. 살려주세요...