자료구조/수업내용
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;
}
}
}