프로그래밍[Univ] 343

[스택] 배열을 이용한 스택 구현 5/27

#include #include #include typedef struct nodetype{ // 자료 묶음 int data; }node; typedef struct Astack_type{ // stack의 형식 int max; int count; node *data_ptr; }stack; stack *makestack(int max){ // stack을 생성하는 함수입니다. stack *returnstack; // 반환한 스택을 만든후 returnstack = (stack *)malloc(sizeof(stack)); // 메모리 할당을 한후 if( returnstack != NULL ){ // 동적 할당이 잘되었는지 확인 후 returnstack -> count = 0; // 반환할 스택에 들어가야할 ..

[스택] 스택(stack) 5/26

~프로로그~ 스택의 기본적인 성질에 대해서 알아보자~ --------------------------------------- *Stack(스택) - 특징 ⓐ 선형 자료구조 > 전후관계가 모두 1:1 ⓑ LIFO(Last In First Out) "후입 선출" = FILO(First In Last Out) "선입 후출" >> " 가장 나중에 들어간 자료가 가정 먼저 나온다!!" ⓒ 자료의 추가, 삭제(반환)은 스택의 끝에서만 가능 - 개념 ⓐ Push : 스택에 자료를 저장 하는 것 >스택의 크기를 벗어나면 Overflow(넘침)가 발생한다.(메모리상 다른 곳을 건드려 다른프로그램에 영향을 끼침) ⓑ Pop : 스택에서 자료를 봔환 및 삭제 하는 것 >공백상태의 스택을 Pop하면 underflow(부족)가..

[리스트]이중연결리스트 (더블링크리스트) 5/25

#include #include #include typedef struct nodetype{ // 노드하나의 형식을 정의 해줍니다. int data; struct nodetype *pre_node; // 자신 이전을 가르키는 노드 입니다. struct nodetype *next_node; // 자신 다음을 가르키는 노드 입니다. }node; typedef struct listtype{ int count; // 저장된 자료 개수 입니다. node headnode; // 더미노드(해더노드)입니다. }list; list *makelist(){ // 리스트를 만드는 함수입니다. list *returnlist; // 생성할 리스트 입니다. 반환 값 returnlist = (list *)malloc(sizeof(l..

[리스트]원형리스트 / 순환 리스트 구현 +a 해더노드vs해더포인터 5/25

#include #include #include typedef struct nodetype{ // 연결리스트 node를 만듭니다 int data; struct nodetype *next_ptr; // node(노드)는 자료 + 연결 이라고했죠? // data라는 자료와 다음 노드를 연결하는 포인터 next_ptr로 구성했습니다 }node; typedef struct listtype{ // 리스트의 형태를 구성합니다. int count; node headnode; // 해더 노드를 사용했습니다. }list; list *makelist(){ // 리스트를 생성하는 함수입니다. list *returnlist; returnlist = (list *)malloc(sizeof(list)); if ( returnli..

[리스트]연결리스트(링크드리스트) 각 단계별 해설 有 구현 5/24

#include #include #include typedef struct nodetype{ // 연결리스트 node를 만듭니다 int data; struct nodetype *next_ptr; // node(노드)는 자료 + 연결 이라고했죠? // data라는 자료와 다음 노드를 연결하는 포인터 next_ptr로 구성했습니다 }node; typedef struct listtype{ // 리스트의 형태를 구성합니다. int count; node headnode; // 해더 노드를 사용했습니다. }list; list *makelist(){ // 리스트를 생성하는 함수입니다. list *returnlist; returnlist = (list *)malloc(sizeof(list)); if ( returnli..

[리스트]링크드리스트 (연결리스트) 5/23

연결리스트에 대해서 알아보자... 일단 연결리스트는 노드들로 구성되어있는 자료구조이다. 여기서 노드라하면 저장할 자료와 다음 노드를 가르키는 포인터를 가지고 있는 것을 말한다, 즉, "노드 = 자료 + 링크"라 할 수 있다. 이제 본격적으로 링크드 리스트의 종류에 대해서 알아보자... 1. 단순 연결리스트 말 그대로 단순한 연결리스트이다-_-; 선형구조를 이루고 있다. 2. 원형 연결리스트 리스트의 마지막 노드가 리스트의 첫번째 노드를 연결하는(가르키는) 자료구조이다. 3. 이중 연결리스트 노드들이 양방향으로 연결되어 있는 연결리스트를 말한다. 특정 노드 기준으로 이전 노드에 접근하기 쉬운 장점이 있다.(접근의 편의성!!) 이에 비해, 메모리 공간을 더 사용해야 하는 단점이 있다. ... 간단하게 연결리..

[리스트]배열 리스트를 구연해보았습니다.(각 단계 해설 有) 5/23

#include #include #include typedef struct nodetype{ // 저장할 데이터 자료형을 구조체로 묶습니다. int data; // 간단한 프로그램 작성을 위해 정수 데이터 하나만 넣었습니다. }node; typedef struct nodelist{ // List의 형태를 구조체로 묶습니다. node *ptr_node; // ptr_node는 데이터 자료형을 사용자가 원하는 크기의 배열로 만들어지게 point로 작성했습니다. int max; // max는 List에서 최대로 저장할수 있는 자료의 양을 나타냅니다. int count; // count는 List에 저장된 자료의 양을 나타냅니다. }Alist; Alist *makelist(int max){ // List를 생성..

[리스트]리스트 5/20

~프로로그~ 리스트에 대해서 알아보자~! 현재 필자는 리스트의 개념이 확실하다고 생각하나 어째 코딩이 안된다. 미칠듯하다. 리눅스환경에서 코딩하다가 visual c++이용하려니깐 복잡해서 안된다. vmware로 리눅스롤 설치하던지.... 므튼... 리스트 코드는 다음에 하기로하고 일단!! 리스트의 개념에 대해서 알아보자! ---------------------------------------------------------------------------- 1. 리스트 자료를 순서대로 저장하는 자료구조를 말한다. 선형구조를 이룬다! - 리스트의 기능(추상자료형으로 나타내고 싶었으나... 귀차니즘이...;;) ⓐ 리스트 생성 - 최대 Max를 가지는 공백 리스트를 구성해준다. ⓑ 리스트 삭제 - 리스트를 ..

데이터 구조를 들어가기전에... 5/18

~프로로그~ 혹시나해서 건너뛰려고 했던 부분을 보았다. 역시나가 2년이란 시간은 기억을 지우기 시작했었다. 보길 잘했다. 다른곳에 정확히 써있어 간략하게나마 데이터 구조에 들어가기전에 주의 해야 할 점에 대해서 적어보려고한다. ---------------------------------------------------------------------------------------------------- 1. 배열 같은 자료형의 데이터를 메모리상에 연속적으로 저장하는 자료형 - 문법 Type Name[SIZE]; ex) int A[2]; // A의 이름을 가진 int자료형이 2개 연속됨. Index가 0 부터 시작 되는 것에 주의 하자!! 초기화가 되지 않아 쓰레기 값이 들어 있다는 의미로 "?"로나타냄..

자료구조와 알고리즘 (추상자료형) / 5월 16일

1. 자료구조 컴퓨터에 자룔르 효율적으로 저장하는 방식 - 자료구조를 설계하는 이유 ① 실행 시간 효율 증대 = 프로그램 수행 시간 최소화 ② 저장공간의 최소화 = 메모리 절약 - 자료구조 설계에 필요한 것 ① 프로그램의 개발 목적 - 자료구조의 종류 ① 단순구조 : 기본적인 데이터 타입(Type) ex) 정수(int), 실수(float), 문자/문자열(char) ② 선형구조 : 각각의 자료들 사이의 전후 관계가 1:1인 것 ex) 리스트, 스택, 큐, 덱 ③ 비선형구조: 각각의 자료들 사이의 전후 관계가 1:多(1 이상)로 망구조 혹은 계층 구조를 이루는 것 ex) 트리, 그래프 ④ 파일구조 : 보조 기억 장치에 저장되는 파일에 대한 자료 구조 ※ 일반적으로 자료 구조라 하면 "② 선형구조" 와 "③ ..