数据结构树的基本操作_[数据结构]树的建立与基本操作 解题报告
Problem Description
在本實驗中,程序的輸入是一個表示樹結構的廣義表。假設樹的根為 root ,其子樹森林 F = ( T1 , T2 , ... , Tn ),設與該樹對應的廣義表為 L ,則 L =(原子,子表 1 ,子表 2 , ... ,子表 n ),其中原子對應 root ,子表 i ( 1
程序的輸出為樹的層次結構、樹的度以及各種度的結點個數。
在輸出樹的層次結構時,先輸出根結點,然后依次輸出各個子樹,每個子樹向里縮進 4 個空格,如:針對上圖表示的樹,輸出的內容應為:
a
b
c
d
f
g
h
i
Degree of tree: 3
Number of nodes of degree 0: 5
Number of nodes of degree 1: 0
Number of nodes of degree 2: 2
Number of nodes of degree 3: 1
**例: **(下面的黑體為輸入)
(a,(b),(c,(d),(e,(g),(h )),(f)))
a
b
c
d
e
g
h
f
Degree of tree: 3
Number of nodes of degree 0: 5
Number of nodes of degree 1: 0
Number of nodes of degree 2: 2
Number of nodes of degree 3: 1
AcCode
//
// main.cpp
// 樹的建立與基本操作
//
// Created by jetviper on 2017/3/26.
// Copyright ? 2017年 jetviper. All rights reserved.
//
#include
#include
int main() {
char str[1000],strtab[5]=" ";
int degree = 0 ,deep = -1,tddgree[100]={0},res[100]={0};
scanf("%s",&str);
int len = strlen(str);
int lastleft = 0;
for(int i =0;i
if(str[i]==',')continue;
else if(str[i]=='('){
lastleft = 1;
continue;
}
else if(str[i]==')'){
if(deep>-1){
if(lastleft == 0)res[tddgree[deep]]++;
if(tddgree[deep]>degree)degree = tddgree[deep];
tddgree[deep]=0;
deep--;
}
else {
break;
}
continue;
}
else {
if(lastleft == 1){
if(deep!= -1)tddgree[deep]++;
deep++;
lastleft = 0;
}
for(int j=0;j
printf("%s",strtab);
}
printf("%c\n",str[i]);
}
}
printf("Degree of tree: %d\n",degree);
for(int i=0;i<=degree;i++){
printf("Number of nodes of degree %d: %d\n",i,res[i]);
}
return 0;
}
總結
以上是生活随笔為你收集整理的数据结构树的基本操作_[数据结构]树的建立与基本操作 解题报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浴室家具防水防潮四大法
- 下一篇: 学区房楼盘?