트리 그래프가 선형인지 아닌지 확인하는 방법을 알아보겠습니다. 선형 트리 그래프는 선형 트리 그래프의 예라고 가정해 한 줄로 표현할 수 있습니다.

그러나 이것은 선형이 아닙니다 -

그래프가 선형인지 아닌지 확인하기 위해 두 가지 조건을 따를 수 있습니다.
- 노드 수가 1이면 트리 그래프가 선형입니다.
- 만약 (n – 2) 노드의 차수가 2인 경우
예시
#include <iostream>
#include <vector>
#define N 4
using namespace std;
class Graph{
private:
int V;
vector<int> *adj;
public:
Graph(int v){
V = v;
adj = new vector<int>[v];
}
void addEdge(int u, int v){
adj[u].push_back(v);
adj[v].push_back(u);
}
bool isLinear() {
if (V == 1)
return true;
int count = 0;
for (int i = 0; i < V; i++) {
if (adj[i].size() == 2)
count++;
}
if (count == V - 2)
return true;
else
return false;
}
};
int main() {
Graph g1(3);
g1.addEdge(0, 1);
g1.addEdge(0, 2);
if (g1.isLinear())
cout << "The graph is linear";
else
cout << "The graph is not linear";
} 출력
The graph is linear