알고리즘/자료구조

자료구조 배열 알고리즘, insert,erase

홍박스 2021. 5. 9. 22:12
728x90

#include <iostream>

using namespace std;

 

void insert(int idx, int num, int arr[], int& len){

    for (int i = len-1; i >= idx; i--) {

        arr[i+1] = arr[i];

    }

    arr[idx] = num;

    len++;

}

 

void erase(int idx, int arr[], int& len){

    for (int i = idx+1; i <= len-1; i++) {

        arr[i-1] = arr[i];

    }

    arr[idx] = 0;

    len--;

}

 

void printArr(int arr[], int& len){

  for(int i = 0; i < len; i++) cout << arr[i] << ' ';

  cout << "\n\n";

}

 

void insert_test(){

  cout << "***** insert_test *****\n";

  int arr[10] = {10, 20, 30};

  int len = 3;

  insert(3, 40, arr, len); // 10 20 30 40

  printArr(arr, len);

  insert(1, 50, arr, len); // 10 50 20 30 40

  printArr(arr, len);

  insert(0, 15, arr, len); // 15 10 50 20 30 40

  printArr(arr, len);

}

 

void erase_test(){

  cout << "***** erase_test *****\n";

  int arr[10] = {10, 50, 40, 30, 70, 20};

  int len = 6;

  erase(4, arr, len); // 10 50 40 30 20

  printArr(arr, len);

  erase(1, arr, len); // 10 40 30 20

  printArr(arr, len);

  erase(3, arr, len); // 10 40 30

  printArr(arr, len);

}

 

int main(void) {

  insert_test();

  erase_test();

}

728x90