2016-04-04 22 views
0

Sol parantez gösteriminden bir dizenin doğru bir parentetik temsilini oluşturmam gerekiyor. Temel olarak bu bir String girişini ayrıştırmak ve daha sonra doğru bir parentetik gösterimi yeniden oluşturmak anlamına gelir. 2 yöntemi uygulamam gerekiyor: Girdiyi ayrıştıran ve bu ayrıştırılmış girdiden gerekli temsili yaratan biri. Bu, java'da yapmam gereken bir ödevin bir parçası.Sol parentetik dizgi temsilinden bir ağaç oluşturma

Bunu test olacağını nasıl kod:

String s = "A(B1,C)"; 
    Node t = Node.parse (s); 
    String v = t.rightParentheticRepresentation(); 
    System.out.println (s + " ==> " + v); // A(B1,C) ==> (B1,C)A 

Yani ben 2 yöntemleri uygulamak gerekir: Düğüm parse (String s) ve dize rightParentheticRepresentation()

Ben teoride biliyorum bir fikrim var Bunu yapmak için nasıl devam etmeliyim ama ayrıştırma yöntemini uygulamak için mücadele ediyorum. Kullanabileceğim herhangi bir uygulama var mı? Uygulama yaklaşımı ile ilgili herhangi bir ipucu çok hoştur veya eğer ağaçların ipin temsilinden elde edilmesine ilişkin iyi bir öğretici olduğunu biliyorsa.

+0

@tllsdv checkout bu [link] (http://enos.itcollege.ee/~ylari/I231/Node.java) yardımcı olabilir – egima

cevap

0

İlk önce, oluşturmak istediğiniz veri yapısı hakkında bir fikir edinmeniz gerekir. Temel olarak burada, her düğümün, bazı parantez içindeki bir içeriğe karşılık geldiği bir ağaç (başlangıçtaki ebeveynler örtük - '(' A (B1, C) ')' - örneğinizde).

Ayrıştırma yöntemi için: giriş String karakterini char. Bir açılış parantezi ile karşılaştığınızda '(' geçerli düğümde bir çocuk oluşturur ve yeni düğüme akımı değiştirir, sonra doldurmaya başlar. Kapanış parantezini karşıladığınızda ')' geçerli düğümü sonlandırır ve tekrar ebeveynine dönersiniz. .