250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 터치디자이너 튜토리얼
- 터치디자이너 오퍼레이터
- 파이썬 if
- 터치디자이너 python
- 터치디자이너 if
- touchdesinger
- touchdesigner particle
- TouchDesigner
- 터치디자이너 함수
- 파이썬
- 터치디자이너 참조
- 터치디자이너 클론
- touchdesigner GPU
- TDableton
- 터치디자이너 interface
- 터치디자이너 list
- 터치디자이너 강의
- 터치디자이너 파이썬
- 터치디자이너 인터페이스
- 터치디자이너 Instancing
- touchdesigner displace
- 터치디자이너 replicator
- ableton live 10
- 터치디자이너 reference
- displace
- 터치디자이너 에이블톤
- 터치디자이너 timeline
- particleGPU
- 터치디자이너
- 파이썬reference
Archives
- Today
- Total
caLAB
[자료구조] 큐(Que), 스택(Stack) 배열로 구현 본문
728x90
큐 (Queue)
큐 (Queue)는 먼저 추가된 데이타가 먼저 출력 처리되는(FIFO, First In First Out) 자료 구조로서 입력된 순서대로 처리해야 하는 상황에 이용된다. Queue는 맨 뒤(tail)에 데이타를 계속 추가하고, 맨 앞(head)에서만 데이타를 읽기 때문에 순차적으로 데이타를 처리하게 된다.
using System;
using System.Collections.Generic;
using System.Text;
namespace dataStructure_Test.MyListClass
{
class MyQue
{
public string[] array;
public int arrayNum;
public int top;
public void arrayInst(int n)
{
arrayNum = n;
array = new string[n];
top = 0;
}
public void Push(int value)
{
if (array[top] == null)
{
array[top] = value.ToString();
Console.WriteLine("*== push ==*");
Console.WriteLine(array[top]);
Console.WriteLine(top);
top++;
}
else
{
Console.WriteLine("no array.");
}
}
public void Pop()
{
Console.WriteLine("*== pop ==*");
if (array[0] != null)
{
Console.WriteLine(array[0]);
top--;
if (top == 0)
{
Console.WriteLine("null");
}
array[0] = null;
for (int i = 0; i < top; i++)
{
array[i] = array[i + 1];
//Console.WriteLine(array[i]);
//Console.WriteLine("this is the line : ");
//Console.WriteLine(i);
}
}
else
{
Console.WriteLine("no element in the array.");
}
}
public void Clear()
{
Console.WriteLine("*== clear ==*");
for (int i = 0; i < arrayNum; i++)
{
array[i] = null;
if (array[i] == null)
{
Console.WriteLine("null");
}
}
}
}
}
스택 (Stack)
스택 (Stack)은 가장 나중에 추가된 데이타가 먼저 출력 처리되는(LIFO, Last In First Out) 자료 구조로서 가장 최신 입력된 순서대로 처리해야 하는 상황에 이용된다. 스택은 개념적으로 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조로 되어 있다. 자료는 스택에 저장하는 것은 Push라 하고, 가장 최근 것부터 꺼내는 것은 Pop이라 한다.
using System;
using System.Collections.Generic;
using System.Text;
namespace dataStructure_Test.MyListClass
{
public class MyStack
{
public int arrayNum;
string[] array;
public static int top = 0;
public void SetNum(int Value)
{
arrayNum = Value;
array = new string[arrayNum];
}
public void Push(int value)
{
if (array[top] == null)
{
array[top] = value.ToString();
Console.WriteLine("*== push ==*");
Console.WriteLine(array[top]);
Console.WriteLine(top);
top++;
}
}
public string Pop()
{
string popVal = "";
Console.WriteLine("*== pop ==*");
top--;
if (array[top] != null)
{
popVal = array[top];
array[top] = null;
}
Console.WriteLine(popVal);
Console.WriteLine(top);
return popVal;
}
public void Clear()
{
Console.WriteLine("*== clear ==*");
for (int i = 0; i < arrayNum; i++)
{
array[i] = null;
if (array[i] == null)
{
Console.WriteLine("null");
}
}
}
}
}
mainCS
using System;
using System.Collections.Generic;
using System.Text;
using dataStructure_Test.MyListClass;
namespace dataStructure_Test
{
class MainCS
{
static void Main()
{
int arrayNum = 5;
MyStack st = new MyStack();
MyQue q = new MyQue();
st.SetNum(arrayNum);
//Console.WriteLine("*== this is Stack ==*");
//st.Push(2);
//st.Push(3);
//st.Pop();
//st.Pop();
//st.Push(5);
//st.Push(5);
//st.Push(5);
//st.Clear();
Console.WriteLine("*== this is Que ==*");
q.arrayInst(5);
q.Push(1);
q.Push(2);
q.Push(3);
q.Push(4);
q.Push(5);
q.Pop();
q.Pop();
q.Pop();
q.Pop();
q.Pop();
q.Pop();
q.Pop();
q.Push(1);
}
}
}
728x90
반응형
'개발 공부 > 컴퓨터 과학' 카테고리의 다른 글
[이것이 C#이다.] 개념01 - CLR, JIT컴파일러, 메모리 공간, CTS (0) | 2021.07.09 |
---|---|
[디자인 패턴] 팩토리 패턴 (0) | 2021.07.02 |
[WPF] UI 이벤트 (이벤트 핸들러, 쓰레드) (0) | 2021.06.29 |
[디자인 패턴 C#] 싱글톤(Singleton) (0) | 2021.06.29 |
[자료구조와 알고리즘] 알고리즘 스피드의 표현법 Big O (0) | 2021.06.28 |
Comments