자료구조/수업내용

03/29 동적 배열 구현 연습

박준희 2021. 3. 29. 16:27

Add메서드 호출시, DynamicArray클래스의 int배열을 임시로 보관할 tmp배열을 int배열+1의 길이로 초기화,

int배열의 요소를 tmp배열에 보관하고, int배열변수에 tmp배열을 넣음

그 후, int배열의 마지막 인덱스에 매개변수x의 값을 넣음

 

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study09
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Main");
            new App();
        }
    }
}

 

App.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Study09
{
    
    public class App
    {        
        public App()
        {
            Console.WriteLine("App");
            //배열 선언
            DynamicArray dynamicArray = new DynamicArray(0);

            dynamicArray.Add(1);
            Console.WriteLine("1 추가");
            foreach(int x in dynamicArray.arr)
            {
                Console.Write(x + " ");
            }
            Console.WriteLine();

            Console.WriteLine("3 추가");
            dynamicArray.Add(3);
            foreach (int x in dynamicArray.arr)
            {
                Console.Write(x + " ");
            }
            Console.WriteLine();

            Console.WriteLine("5 추가");
            dynamicArray.Add(5);
            foreach (int x in dynamicArray.arr)
            {
                Console.Write(x + " ");
            }
            Console.WriteLine();

            
        }
        
    }
}

 

DynamicArray.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study09
{
    public class DynamicArray
    {
        public int[] arr;
        private int capacity;

        public DynamicArray(int capacity)
        {
            this.capacity = capacity;
            this.arr = new int[capacity];
        }
        
        public void Add(int x)
        {
            int[] tmp = new int[arr.Length + 1];
            for (int i = 0; i < arr.Length; i++)
            {
                tmp[i] = arr[i];
            }
            arr = tmp;
            capacity = arr.Length;
            arr[arr.Length - 1] = x;
        }


    }
}