Website Summary Files Commits Branches @commit @diff @stats
path: root / Seminar04 / find-middle.cpp
diff options
context:
space:
mode:
Commit3de7b99fbbfdbb44cfddabf6a697d5c3335bdacb (patch)
Author
 Stoycho Kyosev <stoycho.kk@gmail.com>
2022-10-26 15:43:06 +0300
Committer
 Stoycho Kyosev <stoycho.kk@gmail.com>
2022-10-26 15:43:06 +0300
Filesa72acd5b4d7b4fcc3da4939e18ef864ee58bc064 /Seminar04/find-middle.cpp
Data-structures-and-algorithms-3de7b99fbbfdbb44cfddabf6a697d5c3335bdacb.tar
Data-structures-and-algorithms-3de7b99fbbfdbb44cfddabf6a697d5c3335bdacb.tar.gz
Data-structures-and-algorithms-3de7b99fbbfdbb44cfddabf6a697d5c3335bdacb.zip
Parent0480ca20fabdb9373b64c353c90de47e7f97d394 (diff)
Add Seminar04
1 files changed, 28 insertions, 0 deletions
-rw-r--r--Seminar04/find-middle.cpp28
diff --git a/Seminar04/find-middle.cpp b/Seminar04/find-middle.cpp
new file mode 100644
index 0000000..dc587ba
--- /dev/null
+++ b/Seminar04/find-middle.cpp
@@ -0,0 +1,28 @@
+#include"linked-list-utils.h"
+
+template<class T>
+LinkedListNode<T>* findMiddle(LinkedListNode<T>* ll) {
+ LinkedListNode<T>* fast = ll;
+ LinkedListNode<T>* slow = ll;
+
+
+ while(fast && fast->next) {
+ fast = fast->next->next;
+ slow = slow->next;
+ }
+
+ return slow;
+}
+
+void example() {
+ LinkedListNode<int>* ll = new LinkedListNode(1, new LinkedListNode(2, new LinkedListNode(3, new LinkedListNode(4))));
+ LinkedListNode<int>* lls = new LinkedListNode(1, new LinkedListNode(2, new LinkedListNode(3, new LinkedListNode(4, new LinkedListNode(5)))));
+
+ LinkedListNode<int>* firstMiddle = findMiddle(ll);
+ LinkedListNode<int>* secondMiddle = findMiddle(lls);
+
+ std::cout << firstMiddle->data << " " << secondMiddle->data;
+
+ freeList(ll);
+ freeList(lls);
+} \ No newline at end of file