ما دو لیست _N
و _P
داریم که _N
مقادیر گرهها در یک درخت دودویی را نشان میدهد و _P
والدین گرههای _N
را نشان میدهد.
N | P |
---|---|
7 | 3 |
3 | 5 |
9 | 8 |
4 | 8 |
8 | 5 |
5 | -1 |
تابعی بنویسید که نوع گره درخت دودویی را برای یک گره مشخص پیدا کند. خروجی باید یکی از موارد زیر باشد:
- “Root”: اگر گره، گره ریشه باشد.
- “Leaf”: اگر گره، گره برگ باشد.
- “Inner”: اگر گره، نه ریشه و نه برگ باشد.
- “Not exist”: اگر گره وجود نداشته باشد.
نکات:
- همه مقادیر لیست
_N
منحصر به فرد هستند.
Assert.Equal("Root", Backendbaz.NodeType(new[] { 1, 3, 6, 9, 2, 8, 5 }, new[] { 2, 2, 8, 8, 5, 5, -1 }, 5)); Assert.Equal("Leaf", Backendbaz.NodeType(new[] { 1, 3, 6, 9, 2, 8, 5 }, new[] { 2, 2, 8, 8, 5, 5, -1 }, 6)); Assert.Equal("Inner", Backendbaz.NodeType(new[] { 1, 3, 6, 9, 2, 8, 5 }, new[] { 2, 2, 8, 8, 5, 5, -1 }, 2)); Assert.Equal("Not exist", Backendbaz.NodeType(new[] { 1, 3, 6, 9, 2, 8, 5 }, new[] { 2, 2, 8, 8, 5, 5, -1 }, 10)); Assert.Equal("Inner", Backendbaz.NodeType(new[] { 6, 3, 1, 2, 5, 7, 4, 6, 8 }, new[] { 3, 1, 6, 1, 2, 3, 8, -1, 6 }, 8)); Assert.Equal("Leaf", Backendbaz.NodeType(new[] { 5, 6, 8, 7, 1, 9, 4, 11, 10, 2 }, new[] { 8, 8, -1, 8, 7, 4, 5, 4, 1, 1 }, 11)); Assert.Equal("Root", Backendbaz.NodeType(new[] { 3, 2, 4, 9, 11, 10, 8, 5, 6, 7 }, new[] { -1, 3, 3, 2, 3, 4, 4, 9, 10, 8 }, 3)); Assert.Equal("Inner", Backendbaz.NodeType(new[] { 5, 6, 8, 7, 1, 9, 4, 11, 10, 2 }, new[] { 8, 8, -1, 8, 7, 4, 5, 4, 1, 1 }, 4)); Assert.Equal("Leaf", Backendbaz.NodeType(new[] { 3, 2, 4, 9, 11, 10, 8, 5, 6, 7 }, new[] { -1, 3, 3, 2, 3, 4, 4, 9, 10, 8 }, 6)); Assert.Equal("Root", Backendbaz.NodeType(new[] { 5, 6, 8, 7, 1, 9, 4, 11, 10, 2 }, new[] { 8, 8, -1, 8, 7, 4, 5, 4, 1, 1 }, 8));
نظرات