#include<iostream>
using namespace std;
#define VERTEX_VALUE 5  // 정점의 수
#define EDGE_VALUE 7    // 이음선의 수
/*--------------------------클 래 스 정 의--------------------------------------*/
class Node
{
 friend class Kruskal;
private:
 int vertexStart; // 출발점
 int vertexEnd;// 끝점
 int cost;  //가중치
 Node *link;
};

class Kruskal
{
 friend class Node;
private: 
 Node *first;
 Node *last;

public:
  Kruskal(){}  //생성자
  ~Kruskal(){} //소멸자
  void Input_Data(Kruskal*); // 자료입력
  void KruskalRun(Kruskal*,Kruskal*); // 크루스칼 실행!
  void Sort(Kruskal*); // 정렬
  void Print(Kruskal*,int); // 현재 엣지 출력
  int Find(int,int[]); // 해당 정점이 어떤집합에 속하는지 찾아주는것
  void Merge(int,int,int[]); // 서로수를 합치는 함수
};

/*-------------------------전 역 변 수 -----------------------------------------*/

Kruskal *E = new Kruskal; // 최소비용 신장트리 구하기전의 트리
Kruskal *F = new Kruskal; // 최소비용 신장트리를 구한 결과

int tree[VERTEX_VALUE][VERTEX_VALUE] = /* 가중치값 */
{
{0, 1, 3, 0, 0},
{1, 0, 0, 6, 0},
{3, 3, 0, 4, 2},
{0, 6, 4, 0, 5},
{0, 0, 2, 5, 0}
};  // 이값은 사용자가 임의로 수정할수있습니다.

/*---------------------------프로그램 시작---------------------------------------*/

int main(void)
{
 int a;
Kruskal test; // 크루스칼 돌릴 객체 선언

test.Input_Data(E); // 위 tree의 가중치값들을 객체에 입력합니다.

//test.KruskalRun(E, F); // 크루스칼 알고리즘을 E와 F 트리로 시작합니다.

//cout << \"*** 최소비용 신장 트리 결과 ***\" << endl;
//test.Print(F, VERTEX_VALUE-1); // F 트리의 내용 출력

cin >>a;
return 0;
}

/*-------------------위 전역변수 Tree[][]의 가중치값 신장트리에 입력--------------*/

void Kruskal::Input_Data(Kruskal *e)
{
for(int i=0;i<VERTEX_VALUE;i++)
  for(int j=i;j<VERTEX_VALUE;j++)
  {
   if(tree[i][j] != 0) // 0 이아니면
   {
    e->first->vertexStart = i;//시작점
    e->first->vertexEnd = j; //끝점
    e->first->cost = tree[i][j]; //가중치
    e->first = e->first->link; //다음 노드로 연결한다.   
   }
  }
}

요게 지금 제가 인터넷에서 찾은 소스를 고치고있는 중인데요
F5로 디버그를 하면 자꾸 무뭐 
e->first->vertexStart = i;//시작점
이부분을
액세스를 할수없다고 뜨는데 이거 원인이 뭔지 알수 있을까여..
맨날 프로그레밍 할때마다 저 오류가 뜨는데 맨날 소스를 바꾸다가 해결방법이 있는지 알고싶어서 여쭙니다 형님들

혹시라도 아시는분은 지나치지마시고 답변좀 부탁드리겠습니다 ㅜㅜ