public void TestRemovePalindroms() { var tws = new WordSet(new string[] { "a", "dasd", "bssae", "edfde", "asgsa", "var", "qwse", "ewter" }); tws.RemovePalindroms(); Assert.AreEqual(tws.ToString(), "bssae->dasd->ewter->qwse->var"); }
static void Main(string[] args) { var ws1 = new WordSet(new string[] { "a", "dasd", "bssae", "edfde", "asgsa", "var", "qwse", "ewter" }); Console.WriteLine(@"WordSet by array: {0} Это исходный WordSet", ws1); var ws2 = new WordSet(new string[0]); var res = new WordSet(ws2, ws1); Console.WriteLine(@"Новый WordSet из двух: {0}", res); res.Delete("a"); Console.WriteLine(@"Удаляем ""a"": {0}", res); res.Insert("a"); Console.WriteLine(@"Вставляем ""a"": {0}", res); var r = res.newWordSetByWordLength(4); Console.WriteLine(@"Из имеющегося WordSet получить новый, где длины слов 4(исходный при этом не меняется): {0}", r); res.RemovePalindroms(); Console.WriteLine(@"Удалеяем полиндромы:n {0}", res); var t = res.vowelDivide(); Console.WriteLine(@"WordSet с словами начинающимися на гласные: {0}", t[0]); Console.WriteLine(@"WordSet с словами начинающимися на согласные: {0}", t[1]); }
private Word CopyWordSet(WordSet ws) { var h = ws.Peek().Copy(); h.Next = null; Fill(h, ws.Peek().Next); return(h); }
public void TestVowelDivide() { var tws = new WordSet(new string[] { "a", "dasd", "bssae", "edfde", "asgsa", "var", "qwse", "ewter" }); var t = tws.vowelDivide(); Assert.AreEqual(t[0].ToString(), "a->asgsa->edfde->ewter"); Assert.AreEqual(t[1].ToString(), "bssae->dasd->qwse->var"); }
public void TestDelete() { var tws = new WordSet(new string[] { "b", "d" }); tws.Delete("b"); tws.Delete("a"); Assert.AreEqual(tws.ToString(), "d"); }
public void TestInsert() { var tws = new WordSet(new string[] { "b", "d" }); tws.Insert("a"); tws.Insert("c"); tws.Insert("e"); tws.Insert("b"); Assert.AreEqual(tws.ToString(), "a->b->c->d->e"); }
public WordSet newWordSetByWordLength(int l) { var result = new WordSet(); Word temp = result.Peek(); foreach (Word e in this) { if (e.Data.Length == l) { InsertAfter(temp, e.Copy()); temp = temp.Next; } } result._head = result._head.Next; return(result); }
public WordSet[] vowelDivide() { WordSet w1 = new WordSet(), w2 = new WordSet(); Word temp = _head, t1 = w1.Peek(), t2 = w2.Peek(); while (temp != null) { if (IsVowels(temp.Data)) { InsertAfter(t1, temp.Copy()); t1 = t1.Next; } else { InsertAfter(t2, temp.Copy()); t2 = t2.Next; } temp = temp.Next; } w1._head = w1._head.Next; w2._head = w2._head.Next; return(new WordSet[] { w1, w2 }); }
public WordSet(WordSet w1, WordSet w2) { _head = w1.IsEmpty() ? CopyWordSet(w2) : w2.IsEmpty() ? CopyWordSet(w1) : MergeWordSets(w1.Peek(), w2.Peek()); }
public void TestNewWordSetByWordLength() { var tws = new WordSet(new string[] { "a", "dasd", "bssae", "edfde", "asgsa", "var", "qwse", "ewter" }); Assert.AreEqual(tws.newWordSetByWordLength(4).ToString(), "dasd->qwse"); }