public void ListTestRemove(int expectedCount, int[] values) { var list = new DoublyLinkedList <int>(); foreach (var item in values) { list.AddNodeToLast(item); } Assert.Equal(expectedCount, list.Count); if (expectedCount > 0) { Assert.Equal(list.Head.prev, list.Tail); Assert.Equal(list.Tail.next, list.Head); Assert.NotNull(list.Head); Assert.NotNull(list.Tail); if (values.Length > 1) { list.Remove(1); Assert.Equal(values[2], list.Head.next.data); } Assert.Equal(values[0], list.Head.data); Assert.Equal(values[values.Length - 1], list.Tail.data); } }
static public string CaesarCypherEncrypt(int key, string phrase, string way) { var Encryptor = new DoublyLinkedList <char>(); string EncryptedPhrase = ""; char finalLetter = ' '; for (int i = 0; i < phrase.Length; i++) { for (char currentLetter = 'a'; currentLetter <= 'z'; currentLetter++) { if (phrase[i] == ' ') { Encryptor.AddNodeToLast(' '); break; } else if (phrase[i] == currentLetter) { if (way == "encrypt") { finalLetter = currentLetter; for (int j = 0; j < key; j++) { finalLetter++; } Encryptor.AddNodeToLast(finalLetter); } else if (way == "decrypt") { finalLetter = currentLetter; for (int j = 0; j < key; j++) { finalLetter--; } Encryptor.AddNodeToLast(finalLetter); } } } } var runner = Encryptor.Head; for (int i = 0; i < Encryptor.Count; i++) { EncryptedPhrase += runner.data; runner = runner.next; } return(EncryptedPhrase); }