읽기 : 구조 내에 특정 위치에 접근을 말합니다.검색 : 구조 내에서 특정 데이터를 찾는 것을 말합니다.삭제 : 구조 내에서 특정 데이터를 제거하는 것을 말합니다.삽입 : 구조 내에서 자료를 넣는 것을 말합니다.공간 복잡도 : 프로그램이 점유하는 메모리의 용량을 말합니다. (다행이 현시 대에서의 대부분의 컴퓨터는 비교적 공간 복잡도에서 자유로운 편입니다.)시간 복잡도 : 프로그램이 특정 메소드나 함수를 완료하는 데까지의 걸리는 시간을 말합니다. 시간 복잡도는 Big-O 표기법을 기반으로 효율성을 판단합니다.Big-O : 크기에 상관 없이 한번에 접근이 가능한 경우 과 같이 표기하며, 크기에 따라 여러번을 접근이 필요한 경우 을, 2차원 배열 같이 2배로 필요하 경우 , 3차원은 으로 표시하며, 정렬된 데이터를 찾을 때 절반 단위로 나누어서 접근하는 방식은 으로 표시합니다.Index를 사용하여 바로 접근이 가능하기 때문입니다.
void Main()
{
// 초기화시 괄호 안에 숫자는 기본 크기입니다.
List<int> mylist = new List<int>(6);
List<int> mylist = new List<int>(6);
mylist.Add(10);
mylist.Add(9);
mylist.Add(8);
mylist.Add(7);
mylist.Add(6);
mylist.Add(5);
foreach (int i in mylist)
{
Console.WriteLine(i);
}
Console.WriteLine("\n-----------\n");
mylist.Add(4);
mylist.Add(3);
foreach (int i in mylist)
{
Console.WriteLine(i);
}
}
10
9
8
7
6
5
-----------
10
9
8
7
6
5
4
3
void Main()
{
LinkedList<int> mylist = new LinkedList<int>();
// 노드의 위치를 지정합니다.
LinkedListNode<int> mynode;
// 첫번째 지점, 배열 기준 0번째에 삽입합니다.
mylist.AddFirst(1);
// 가장 마지막 지점, 배열의 끝(5의 길이의 배열에 경우 4)에 삽입합니다.
mylist.AddLast(2);
mynode = mylist.AddLast(3);
mylist.AddLast(4);
mylist.AddLast(5);
// node가 마지막으로 지정된 위치를 기준으로 뒤로 99를 입력
mylist.AddAfter(mynode, 99);
// node가 마지막으로 지정된 위치를 기준으로 앞으로 77을 입력
mylist.AddBefore(mynode, 77);
foreach (int i in mylist)
{
Console.Write($"{i} ");
}
}
1 2 77 3 99 4 5
void Main()
{
Stack<int> mystack = new Stack<int>();
mystack.Push(1);
mystack.Push(2);
mystack.Push(3);
mystack.Push(4);
Console.WriteLine(mystack.Pop());
Console.WriteLine(mystack.Pop());
// Peek를 통해 삭제하지 않고 보기만 할 수 있습니다.
Console.WriteLine(mystack.Peek());
Console.WriteLine(mystack.Pop());
Console.WriteLine(mystack.Pop());
}
4
3
2
2
1
void Main()
{
Queue<int> myqueue = new Queue<int>();
myqueue.Enqueue(1);
myqueue.Enqueue(2);
myqueue.Enqueue(3);
Console.WriteLine(myqueue.Dequeue());
Console.WriteLine(myqueue.Dequeue());
//같은 방식으로 peek을 이용해 보기만할 수 있습니다.
Console.WriteLine(myqueue.Peek());
Console.WriteLine(myqueue.Dequeue());
}
1
2
3
Dictionary<string, string> spell = new Dictionary<string, string>();
spell.Add("점화", "지정한 대상을 불태웁니다.");
spell.Add("회복", "가장 가까운 아군 또는 지정한 아군을 회복하면서 이동속도를 증가 시킵니다.");
spell.Add("강타", "지정한 대상을 고정피해로 피해 입힙니다.");
Console.WriteLine(spell["점화"]);
Console.WriteLine(spell["회복"]);
Console.WriteLine(spell["강타"]);
spell["강타"] = "지정한 대상을 고정피해로 피해 입히고, 느려지게 만듭니다.";
Console.WriteLine(spell["강타"]);
지정한 대상을 불태웁니다.
가장 가까운 아군 또는 지정한 아군을 회복하면서 이동속도를 증가 시킵니다.
지정한 대상을 고정피해로 피해 입힙니다.
지정한 대상을 고정피해로 피해 입히고, 느려지게 만듭니다.