ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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;
            }
    
    
        }
    }
    
Designed by Tistory.