JSON element
Uppgift:
A binary tree is a tree whose every node either branches to two binary trees or is a
leaf, i.e. contains a value. Here is an example of a binary tree
Show a JSON element representing the above example tree, and which is
valid according to your Schema.- Variant: Make values in branches optional (but values in leafs should still be required)
Jag har försökt lösa uppgiften på följande vis:
Är detta en korrekt lösning? Den skiljer sig från svaret till uppgiften, men det kanske bara är ett annat sätt att lösa uppgiften på? Svaret till uppgiften:
Key/value based approach:
Namn är förstås godtyckliga, men leaf/löv syftar bara på noder som inte har barn. Kalla dem children i stället.
Varför har du både leaf och leafs?
Laguna skrev:Namn är förstås godtyckliga, men leaf/löv syftar bara på noder som inte har barn. Kalla dem children i stället.
Varför har du både leaf och leafs?
Ja just det ja. Anledningen till att jag skrev både leaf och leafs är bara pga slarv. Är elementet korrekt i övrigt om man bortser från namnen?
Efter namnjusteringarna:
TB16 skrev:Laguna skrev:Namn är förstås godtyckliga, men leaf/löv syftar bara på noder som inte har barn. Kalla dem children i stället.
Varför har du både leaf och leafs?
Ja just det ja. Anledningen till att jag skrev både leaf och leafs är bara pga slarv. Är elementet korrekt i övrigt om man bortser från namnen?
Efter namnjusteringarna:
Det blir besvärligt att skriva generell kod som hanterar dina träd, för noderna är inte alls enhetliga. I roten står värdet under "root", på nästa nivå under "left" eller "right", och på lövnivån under "LeftLeaf" och "RightLeaf".
Laguna skrev: Det blir besvärligt att skriva generell kod som hanterar dina träd, för noderna är inte alls enhetliga. I roten står värdet under "root",
Hur menar du med att värdet står under "root"? Syftar du på att värdet 3 står under "root"?
TB16 skrev:Laguna skrev: Det blir besvärligt att skriva generell kod som hanterar dina träd, för noderna är inte alls enhetliga. I roten står värdet under "root",Hur menar du med att värdet står under "root"? Syftar du på att värdet 3 står under "root"?
Med "under root" menade jag att man slår upp nyckeln "root" för att få värdet. Visuellt är det väl till höger här.
Laguna skrev:TB16 skrev:Laguna skrev: Det blir besvärligt att skriva generell kod som hanterar dina träd, för noderna är inte alls enhetliga. I roten står värdet under "root",Hur menar du med att värdet står under "root"? Syftar du på att värdet 3 står under "root"?
Med "under root" menade jag att man slår upp nyckeln "root" för att få värdet. Visuellt är det väl till höger här.
Gör man inte det i svaret till uppgiften också? (se nedan). Är det att jag bakar in barnnoderna i en array som skapar problem?
{ "data":3,
"lft": {
"data":1,
"lft": {"data":0},
"rgt": {"data":2}
},
"rgt": {
"data":5,
"lft": {"data":4},
"rgt": {"data":6}
}
}
Visuell representation:
Den enda nyckel de har där är "data", så man behöver inte veta var i trädet en nod finns för att hantera den.