using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace delegateCalculator { class Program { static void Main(string[] args) { Calculator cal = new Calculator(); Console.WriteLine("Add Result : " + cal.a(1, 2, 3, 4, 5)); //무제한 인수를 통해 2개 이상의 인자를 모두 받을 수 있음 Console.WriteLine("Sub Result : " + cal.s(10, 1, 2, 3, 4)); //10 - 1 - 2..
트리는 계층적 구조를 가진 자료구조이며, 선형이다. 트리는 노드가 간선으로 연결되어있다. 한 노드와 간선으로 연결되어 있는 노드 중 바로 위층에 있는 노드를 부모 노드, 바로 아래 층에 있는 노드를 자식 노드라고 한다. 또, 트리의 모든 노드 중 아래 간선의 갯수 중 가장 많은 것의 갯수를 차수라고 한다. 트리에는 루트 노드, 리프 노드가 있다. 루트 노드는 트리의 맨 위의 노드이다. (그림에서 A)리프 노드는 자식 노드가 없는, 즉 차수가 0인 노드이다. 루트의 자식 노드가 새로운 노드로 되어 구성하는 트리를 서브 트리라고 한다. 트리의 높이는 루트 노드로부터 간선의 개수다.트리의 레벨은 루트 노드로부터의 층수이다. 루트 노드의 층수는 1이다. 트리의 순회 방법으로는 4가지가 있다.전위, 중위, 후위,..
#include #include typedef struct node{ int data; struct node *link; }Node; Node* createNode(int num) { Node *p; p=(Node*)malloc(sizeof(Node)); p->link=NULL; p->data=num; return p; } //이전과 동일. Node* reverse(Node *head) { Node *res,*tmp,*p=head; //결과 저장 res, 임시 저장 tmp //head를 따라가는 포인터 p res=tmp=NULL; while(p!=NULL) { tmp=res;//우선 뒤집을 포인터의 헤드를 따라간다. res=p;//뒤집을 포인터의 헤드로 간다. p=p->link;//뒤집을 포인터의 접근 ..
#include #include //malloc 함수가 들어있는 헤더파일 typedef struct node{ int data; struct node* link;//다음 데이터를 담을 링크 포인터 변수 }Node; Node* CreateNode(int num){ Node *p; p=(Node*)malloc(sizeof(Node));//새로운 노드를 메모리 할당함. p->data=num; //새로운 노드의 데이터를 파라미터에 주어진 값으로 함. p->link=NULL; //새로운 노드의 링크를 NULL로 할당 return p; //새로운 노드의 주소 리턴 } int main(void) { Node *p, *head; //연결 리스트의 첫번째 노드인 head 변수와 접근을 위한 p 포인터 변수 head=p=..