diff --git a/FinalExamWorkpad/Exam.cpp b/FinalExamWorkpad/Exam.cpp
new file mode 100644
index 0000000..6b98a20
--- /dev/null
+++ b/FinalExamWorkpad/Exam.cpp
@@ -0,0 +1,4 @@
+int main() {
+	int* p;
+	p = new int[10];
+}
\ No newline at end of file
diff --git a/FinalExamWorkpad/FinalExamWorkpad.sln b/FinalExamWorkpad/FinalExamWorkpad.sln
new file mode 100644
index 0000000..1f856ef
--- /dev/null
+++ b/FinalExamWorkpad/FinalExamWorkpad.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.6.33801.468
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FinalExamWorkpad", "FinalExamWorkpad.vcxproj", "{63154B5A-677F-444E-B042-3516C281B6F1}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{63154B5A-677F-444E-B042-3516C281B6F1}.Debug|x64.ActiveCfg = Debug|x64
+		{63154B5A-677F-444E-B042-3516C281B6F1}.Debug|x64.Build.0 = Debug|x64
+		{63154B5A-677F-444E-B042-3516C281B6F1}.Debug|x86.ActiveCfg = Debug|Win32
+		{63154B5A-677F-444E-B042-3516C281B6F1}.Debug|x86.Build.0 = Debug|Win32
+		{63154B5A-677F-444E-B042-3516C281B6F1}.Release|x64.ActiveCfg = Release|x64
+		{63154B5A-677F-444E-B042-3516C281B6F1}.Release|x64.Build.0 = Release|x64
+		{63154B5A-677F-444E-B042-3516C281B6F1}.Release|x86.ActiveCfg = Release|Win32
+		{63154B5A-677F-444E-B042-3516C281B6F1}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {B4961236-FD1F-447A-8C66-4D8F0EBDF6A1}
+	EndGlobalSection
+EndGlobal
diff --git a/FinalExamWorkpad/FinalExamWorkpad.vcxproj b/FinalExamWorkpad/FinalExamWorkpad.vcxproj
new file mode 100644
index 0000000..2395add
--- /dev/null
+++ b/FinalExamWorkpad/FinalExamWorkpad.vcxproj
@@ -0,0 +1,135 @@
+
+
+  
+    
+      Debug
+      Win32
+    
+    
+      Release
+      Win32
+    
+    
+      Debug
+      x64
+    
+    
+      Release
+      x64
+    
+  
+  
+    16.0
+    Win32Proj
+    {63154b5a-677f-444e-b042-3516c281b6f1}
+    FinalExamWorkpad
+    10.0
+  
+  
+  
+    Application
+    true
+    v143
+    Unicode
+  
+  
+    Application
+    false
+    v143
+    true
+    Unicode
+  
+  
+    Application
+    true
+    v143
+    Unicode
+  
+  
+    Application
+    false
+    v143
+    true
+    Unicode
+  
+  
+  
+  
+  
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+  
+    
+      Level3
+      true
+      WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+    
+  
+  
+    
+      Level3
+      true
+      true
+      true
+      WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+      true
+      true
+    
+  
+  
+    
+      Level3
+      true
+      _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+    
+  
+  
+    
+      Level3
+      true
+      true
+      true
+      NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+      true
+      true
+    
+  
+  
+    
+  
+  
+  
+  
+
\ No newline at end of file
diff --git a/FinalExamWorkpad/FinalExamWorkpad.vcxproj.filters b/FinalExamWorkpad/FinalExamWorkpad.vcxproj.filters
new file mode 100644
index 0000000..a3834d7
--- /dev/null
+++ b/FinalExamWorkpad/FinalExamWorkpad.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+  
+    
+      {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+      cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+    
+    
+      {93995380-89BD-4b04-88EB-625FBE52EBFB}
+      h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+    
+    
+      {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+      rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+    
+  
+  
+    
+      Source Files
+    
+  
+
\ No newline at end of file
diff --git a/Project12/Project12.cpp b/Project12/Project12.cpp
index 639a3ca..fe46160 100644
--- a/Project12/Project12.cpp
+++ b/Project12/Project12.cpp
@@ -45,14 +45,14 @@ int main() {
 
     vector> relations;
 
-    for (int i = 0; i <= nodes; i++) {
+    for (int i = 0; i < nodes; i++) {
         relations.push_back({ i });
     }
 
     cout << "\nEnter the node connections in the format \"X-Y\" where\n"
         << "X is the source node and Y is the destination node\n";
-    cout << "Valid nodes range from 0 to " << nodes << " inclusive.\n"
-        << "Enter \'q\' to stop edge entry.\n";
+    cout << "Valid nodes range from 0 to " << nodes-1 << " inclusive.\n"
+        << "Enter \'d\' to display current graph or \'q\' to exit.\n";
     
     while (edgeInput != "q") {
         cout << "\nEdge: ";
@@ -64,15 +64,21 @@ int main() {
         getline(ss, b, '-');
         ss.str({});
 
-        try {
-            relations[stoi(a)].push_back(stoi(b));
+        if (edgeInput == "q") break;
+        else if (edgeInput == "d") {
+            graph digraph(relations);
+            cout << "Graph structure is:\n";
+            digraph.displayGraph();
+            system("pause");
+            break;
         }
-        catch (...) {
-            cout << "Invalid entry\n";
+        else {
+            try {
+                relations[stoi(a)].push_back(stoi(b));
+            }
+            catch (...) {
+                cout << "Invalid entry\n";
+            }
         }
-
-
-        
-
     }
 }
\ No newline at end of file
diff --git a/Project12/digraph.h b/Project12/digraph.h
index c2c0bdc..5eac55b 100644
--- a/Project12/digraph.h
+++ b/Project12/digraph.h
@@ -10,18 +10,35 @@ private:
 	int pointNum;
 	vector connectedNodes;
 
-
 public:
-	graphNode() {
-
+	graphNode(int id, vector connections) {
+		pointNum = id;
+		connectedNodes = connections;
 	}
+
+	graphNode(int id) {
+		pointNum = id;
+	}
+
 	int getPointNum() {
 		return pointNum;
-	};
+	}
+
+	void setConnectedNodes(vector n) {
+		connectedNodes = n;
+	}
+
 	vector getConnectedNodes() {
 		return connectedNodes;
 	}
 
+	void displayGraphNode() {
+		cout << pointNum << ": ";
+		for (auto i = connectedNodes.begin(); i != connectedNodes.end(); i++) {
+			cout << (*i)->pointNum << " ";
+		}
+		cout << endl;
+	}
 };
 
 class graph {
@@ -29,12 +46,49 @@ private:
 	vector nodesList;
 
 public:
-	void addNewNode(vector n) {
+	graph(vector>& v) {
+		for (auto i = v.begin(); i != v.end(); i++) {
+			vector p = *i;
+			graphNode tmp(p[0]);
+			nodesList.push_back(tmp);
+		}
+
+		for (auto i = v.begin(); i != v.end(); i++) {
+			addConnections(*i);
+		}
+	}
+	void addConnections(vector& n) {
+		int num;
+		vector connects;
+
+		for (auto i = n.begin(); i != n.end(); i++) {
+			if (i == n.begin()) {
+				num = *i;
+			}
+			else if (*i == num) {
+				continue;
+			}
+			else {
+				connects.push_back(&nodesList[*i]);
+			}
+		}
+		nodesList[num].setConnectedNodes(connects);
 
 	}
 
-	void removeNode(vector n) {
+	void addgraphNode(vector& n) {
+		auto i = nodesList.end();
+		int x = i->getPointNum();
 
+		graphNode tmp(x + 1);
+
+		addConnections(n);
+	}
+
+	void displayGraph() {
+		for (auto i = nodesList.begin(); i != nodesList.end(); i++) {
+			(*i).displayGraphNode();
+		}
 	}
 };
 
diff --git a/Project14/Project14.cpp b/Project14/Project14.cpp
new file mode 100644
index 0000000..6ba2211
--- /dev/null
+++ b/Project14/Project14.cpp
@@ -0,0 +1,54 @@
+// Corey Williams
+// COP3530 01Z
+// Project 14
+
+/*
+Write an application in C++ or Java that uses the “Comb Sort” template described in
+section 9.1.4, pp. 500-501 to write an application that will sort an array of 50 randomly generated integers.
+The application must perform the following.
+
+    Display the unsorted numbers
+    Display the sorted numbers
+*/
+
+#include 
+
+using namespace std;
+
+template
+void combsort(T data[], const int n) {
+    int step = n, j, k;
+    while ((step = int(step / 1.3)) > 1) // phase 1
+        for (j = n - 1; j >= step; j--) {
+            k = j - step;
+            if (data[j] < data[k])
+                swap(data[j], data[k]);
+        }
+    bool again = true;
+    for (int i = 0; i < n - 1 && again; i++) // phase 2
+        for (j = n - 1, again = false; j > i; --j)
+            if (data[j] < data[j - 1]) {
+                swap(data[j], data[j - 1]);
+                again = true;
+            }
+}
+
+int main() {
+    int a[50];
+
+    for (int i = 0; i <= 49; i++) { //step through the array loading with rand integers
+        a[i] = rand();
+    }
+
+    cout << "Unsorted Elements:\n"; //iterate through and print each element of the unsorted array
+    for (int i = 0; i <= 49; i++) {
+        cout << a[i] << endl;
+    }
+
+    combsort(a, 50);
+
+    cout << "\nSorted Elements:\n"; //iterate through and print each element of the sorted array
+    for (int i = 0; i <= 49; i++) {
+        cout << a[i] << endl;
+    }
+}
\ No newline at end of file
diff --git a/Project14/Project14.sln b/Project14/Project14.sln
new file mode 100644
index 0000000..81311a9
--- /dev/null
+++ b/Project14/Project14.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.6.33801.468
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project14", "Project14.vcxproj", "{525680F5-D7E4-46EC-BB9E-A743267FA432}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{525680F5-D7E4-46EC-BB9E-A743267FA432}.Debug|x64.ActiveCfg = Debug|x64
+		{525680F5-D7E4-46EC-BB9E-A743267FA432}.Debug|x64.Build.0 = Debug|x64
+		{525680F5-D7E4-46EC-BB9E-A743267FA432}.Debug|x86.ActiveCfg = Debug|Win32
+		{525680F5-D7E4-46EC-BB9E-A743267FA432}.Debug|x86.Build.0 = Debug|Win32
+		{525680F5-D7E4-46EC-BB9E-A743267FA432}.Release|x64.ActiveCfg = Release|x64
+		{525680F5-D7E4-46EC-BB9E-A743267FA432}.Release|x64.Build.0 = Release|x64
+		{525680F5-D7E4-46EC-BB9E-A743267FA432}.Release|x86.ActiveCfg = Release|Win32
+		{525680F5-D7E4-46EC-BB9E-A743267FA432}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {4232E4D8-B675-4B30-96C1-D84F1E8BE697}
+	EndGlobalSection
+EndGlobal
diff --git a/Project14/Project14.vcxproj b/Project14/Project14.vcxproj
new file mode 100644
index 0000000..2d674c7
--- /dev/null
+++ b/Project14/Project14.vcxproj
@@ -0,0 +1,135 @@
+
+
+  
+    
+      Debug
+      Win32
+    
+    
+      Release
+      Win32
+    
+    
+      Debug
+      x64
+    
+    
+      Release
+      x64
+    
+  
+  
+    16.0
+    Win32Proj
+    {525680f5-d7e4-46ec-bb9e-a743267fa432}
+    Project14
+    10.0
+  
+  
+  
+    Application
+    true
+    v143
+    Unicode
+  
+  
+    Application
+    false
+    v143
+    true
+    Unicode
+  
+  
+    Application
+    true
+    v143
+    Unicode
+  
+  
+    Application
+    false
+    v143
+    true
+    Unicode
+  
+  
+  
+  
+  
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+  
+    
+      Level3
+      true
+      WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+    
+  
+  
+    
+      Level3
+      true
+      true
+      true
+      WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+      true
+      true
+    
+  
+  
+    
+      Level3
+      true
+      _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+    
+  
+  
+    
+      Level3
+      true
+      true
+      true
+      NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+      true
+      true
+    
+  
+  
+    
+  
+  
+  
+  
+
\ No newline at end of file
diff --git a/Project14/Project14.vcxproj.filters b/Project14/Project14.vcxproj.filters
new file mode 100644
index 0000000..9b5889c
--- /dev/null
+++ b/Project14/Project14.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+  
+    
+      {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+      cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+    
+    
+      {93995380-89BD-4b04-88EB-625FBE52EBFB}
+      h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+    
+    
+      {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+      rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+    
+  
+  
+    
+      Source Files
+    
+  
+
\ No newline at end of file