private string _val = null;
public string Value { get { return _val; } }
private NodeList _next = null;
private NodeList _prev = null;
public NodeList Next { get { return _next; } }
public NodeList Prev { get { return _prev; } }
public NodeList(string value)
protected void SetNext(NodeList node)
protected void SetPrev(NodeList node)
public void Insert(NodeList node)
public override string ToString()
return Value + Next.ToString();
public static void Main()
string paragraph = "This. Is. a. Test... to? see if Who's the Boss? is on at 10:00 A.M. or who's the Boss? is...on at 7:00 p.m.! abc.txt 1. hm? HM. hm!";
foreach (char c in paragraph)
n = new NodeList(c.ToString());
cur.Insert(new NodeList(c.ToString()));
Console.WriteLine("Original String: " + n.ToString());
while(curr != null && curr.Next != null)
if(curr.Next.Value == " ")
if(curr.Prev != null && curr.Prev.Value == "M")
if(curr.Prev.Prev != null && curr.Prev.Prev.Value == ".")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "A")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "P")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "a")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "p")
else if (curr.Prev.Prev != null && curr.Prev.Prev.Value != ".")
curr.Next.Insert(new NodeList("\n"));
if (curr.Prev != null && curr.Prev.Value == "m")
if (curr.Prev.Prev != null && curr.Prev.Prev.Value == ".")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "A")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "P")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "a")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "p")
else if (curr.Prev.Prev != null && curr.Prev.Prev.Value != ".")
curr.Next.Insert(new NodeList("\n"));
if (curr.Prev != null && curr.Prev.Value != "M")
if (curr.Prev != null && curr.Prev.Value != "m")
curr.Next.Insert(new NodeList("\n"));
if (curr.Next.Value == " ")
if (curr.Prev != null && curr.Prev.Value == "M")
if (curr.Prev.Prev != null && curr.Prev.Prev.Value == ".")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "A")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "P")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "a")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "p")
else if (curr.Prev.Prev != null && curr.Prev.Prev.Value != ".")
curr.Next.Insert(new NodeList("\n"));
if (curr.Prev != null && curr.Prev.Value == "m")
if (curr.Prev.Prev != null && curr.Prev.Prev.Value == ".")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "A")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "P")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "a")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "p")
else if (curr.Prev.Prev != null && curr.Prev.Prev.Value != ".")
curr.Next.Insert(new NodeList("\n"));
if (curr.Prev != null && curr.Prev.Value != "M")
if (curr.Prev != null && curr.Prev.Value != "m")
curr.Next.Insert(new NodeList("\n"));
if (curr.Next.Value == " ")
if (curr.Prev != null && curr.Prev.Value == "M")
if (curr.Prev.Prev != null && curr.Prev.Prev.Value == ".")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "A")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "P")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "a")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "p")
else if (curr.Prev.Prev != null && curr.Prev.Prev.Value != ".")
curr.Next.Insert(new NodeList("\n"));
if (curr.Prev != null && curr.Prev.Value == "m")
if (curr.Prev.Prev != null && curr.Prev.Prev.Value == ".")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "A")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "P")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "a")
if (curr.Prev.Prev.Prev != null && curr.Prev.Prev.Prev.Value == "p")
else if (curr.Prev.Prev != null && curr.Prev.Prev.Value != ".")
curr.Next.Insert(new NodeList("\n"));
if(curr.Prev != null && curr.Prev.Value != "M")
if (curr.Prev != null && curr.Prev.Value != "m")
if (curr.Prev != null && curr.Prev.Value != "s")
curr.Next.Insert(new NodeList("\n"));
if (curr.Prev != null && curr.Prev.Value == "s")
NodeList findBoss = curr.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "s")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "s")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "o")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "o")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "B")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "B")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != " ")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == " ")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "e")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "e")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "h")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "h")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "t")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "t")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != " ")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == " ")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "s")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "s")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "'")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "'")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "o")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "o")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "h")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "h")
findBoss = findBoss.Prev;
if (findBoss.Prev != null && findBoss.Prev.Value != "W")
curr.Next.Insert(new NodeList("\n"));
if (findBoss.Prev != null && findBoss.Prev.Value == "W")
Console.WriteLine("Modified String: " + n.ToString());