I habe den folgenden Code den Knoten eines Baumes in den aktuellen Baum für darunter (der Union-Methode):Hinzufügen eines Elements zu einem Baum in scala
class NonEmpty(elem: Tweet, left: TweetSet, right: TweetSet) extends TweetSet {
def union(that: TweetSet): TweetSet =
{
that.incl(this.elem)
return that
}
def incl(x: Tweet): TweetSet = {
if (x.text < elem.text) new NonEmpty(elem, left.incl(x), right)
else if (elem.text < x.text) new NonEmpty(elem, left, right.incl(x))
else this
}
}
object Main extends App {
// Print the trending tweets
val gizmodoTweets = TweetReader.ParseTweets.getTweetData("gizmodo", TweetData.gizmodo)
val techCrunchTweets = TweetReader.ParseTweets.getTweetData("TechCrunch", TweetData.gizmodo)
val test1: TweetSet = TweetReader.toTweetSet(gizmodoTweets)
val test2: TweetSet = TweetReader.toTweetSet(techCrunchTweets)
test1.union(test2).foreach(x=> println(x))
}
Aber wenn ich drucken die Ausgabe der Union-Methode, sehe ich nicht die this.elem
hinzugefügt, um die that
Baum. Warum passiert dies?
Ist die von Coursera Training, Kurs 1? Zeigen Sie, wie Sie versuchen, – Pavel
zu drucken, fügte den Code für das Drucken hinzu ... – sarthak
Ihre incl Funktion erstellen neue Instanz. Es ist also keine Modifikation. Ihre Version gibt also den ursprünglichen Parameter zurück. – Pavel