Advertisement
Guest User

LinkedList1

a guest
Nov 18th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.88 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. struct Node {
  4.     int id, content;
  5.     Node* ptrToNext;
  6. };
  7.  
  8. class LList {
  9. public:
  10.     Node* ptrNode1;
  11.     Node* nodePtr;
  12.     Node* oldNodePtr;
  13.     int numNodes = 0;
  14.     void M_Append(int toApp) {
  15.         nodePtr = new Node();
  16.         if (numNodes == 0) {
  17.             ptrNode1 = nodePtr;
  18.         }
  19.         nodePtr->id = numNodes + 1;
  20.         nodePtr->content = toApp;
  21.         if (numNodes > 0) {
  22.             oldNodePtr->ptrToNext = nodePtr;
  23.         }
  24.         oldNodePtr = nodePtr;
  25.         numNodes++;
  26.     }
  27.     Node* M_Search(int searchdId) {
  28.         Node* curNode = ptrNode1;
  29.         for (int iter = 0; iter < numNodes; iter++) {
  30.             if (curNode->id == searchdId) {
  31.                 return curNode;
  32.             }
  33.             else curNode = curNode->ptrToNext;
  34.         }
  35.     }
  36.     void M_Del(int delAt) { //ids are offset by 1
  37.         M_Search(delAt+1)->ptrToNext = M_Search(delAt + 2);
  38.         for (int iter = 0; iter < (numNodes - delAt + 1); iter++) {
  39.             Node* tempPtr = M_Search(delAt)->ptrToNext;
  40.             tempPtr->id++;
  41.         }
  42.         numNodes--;
  43.     }
  44.     void M_Ins(int insAt, int toIns) {
  45.         Node* newPtr = new Node();
  46.         newPtr->ptrToNext = M_Search(insAt)->ptrToNext;
  47.         M_Search(insAt)->ptrToNext = newPtr;
  48.         newPtr->id = insAt + 1;
  49.         newPtr->content = toIns;
  50.         Node* tempPtr = newPtr->ptrToNext;
  51.         for (int iter = 0; iter < (numNodes - insAt); iter++) {
  52.             tempPtr->id += 1;
  53.             tempPtr = tempPtr->ptrToNext;
  54.         }
  55.         delete tempPtr, newPtr;
  56.         numNodes++;
  57.     }
  58.     void M_Replace(int repId, int repWith) {
  59.         M_Search(repId)->content = repWith;
  60.     }
  61.     void M_PrintNode(int printAt) {
  62.         Node* curNode = ptrNode1;
  63.         for (int iter = 0; iter < numNodes; iter++) {
  64.             if (curNode->id == printAt) {
  65.                 std::cout << curNode->content << std::endl;
  66.                 break;
  67.             }
  68.             else curNode = curNode->ptrToNext;
  69.         }
  70.     }
  71. };
  72.  
  73. int main() {
  74.     LList list1;
  75.     for (int i = 0; i < 10; i++) {
  76.         list1.M_Append(i);
  77.     }
  78.     list1.M_Ins(4, 0);
  79.     list1.M_Del(3);
  80.     for (int i = 0; i < 11; i++) {
  81.         list1.M_PrintNode(i + 1);
  82.     }
  83.     system("pause");
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement