인접 표 기반 그림 만 들 기 (방향 도 + 방향 도 없 음)
1985 단어 도 론
① 인접 행렬: A (i, j) = 1 은 i, j 에 한 변 이 존재 하고 공간 복잡 도 O (n ^ 2), 밀도 도 를 나타 낸다.
② 인접 표: 존재 하 는 변 만 기록 하고 Vector + List 의 데이터 구조, 희소 도
인접 행렬 의 그림 은 여기 서 군말 하지 않 고 다음 에 우 리 는 인접 표 의 그림 을 살 펴 보 자.
< 1 > 유방 향도
머리 가 노드 를 삽입 하 는 과정 을 잘 이해 하 세 요.
int n,m;//n ,m
struct LinkNode//
{
int vex; //
LinkNode* next;
};
struct Node//
{
int data;
LinkNode* head;//
} Adj[maxn];
// ( )Vector+List
void createLink(){
LinkNode *ptr1,*ptr2;//
for(int i=1;i<=n;i++) Adj[i].head=NULL;
for(int i=1;i<=m;i++){
ptr1=new LinkNode;
scanf("%d",&ptr1->vex);
// , , head
ptr2=new LinkNode;
scanf("%d",&ptr2->vex);
// ,
ptr2->next=Adj[ptr1->vex].head;
Adj[ptr1->vex].head=ptr2;
}
}
int main()
{
//freopen("input.txt","r",stdin);
while(scanf("%d%d",&n,&m)!=EOF){ // ,
createLink();
}
return 0;
}
< 2 > 무방 향도
방향 도 기반 으로 두 번 삽입 하면 됩 니 다.
int n,m;//n ,m
struct LinkNode//
{
int vex; //
LinkNode* next;
};
struct Node//
{
int data;
LinkNode* head;//
} Adj[maxn];
// ( )Vector+List
void createLink(){
LinkNode *ptr1,*ptr2;//
for(int i=1;i<=n;i++) Adj[i].head=NULL;
for(int i=1;i<=m;i++){
ptr1=new LinkNode;
scanf("%d",&ptr1->vex);
// , , head
ptr2=new LinkNode;
scanf("%d",&ptr2->vex);
ptr2->next=Adj[ptr1->vex].head;
Adj[ptr1->vex].head=ptr2;
//
ptr1->next=Adj[ptr2->vex].head;
Adj[ptr2->vex].head=ptr1;
}
}
int main()
{
//freopen("input.txt","r",stdin);
while(scanf("%d%d",&n,&m)!=EOF){ // ,
createLink();
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HDU 1874: 원활 한 공사 계속 [Dijkstra & SPFA & Floyd]모 성 은 여러 해 동안 의 원활 한 공사 계획 을 실행 한 후에 마침내 많은 길 을 건설 하 였 다.길 을 많이 건 너 지 않 아 도 좋 지 않다. 한 도시 에서 다른 도시 로 갈 때마다 여러 가지 도로 방안 을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.