Programming (148) 썸네일형 리스트형 [자료구조] C언어 연결리스트 스택 구현 - 배열로 스택을 구현할 수 있지만 고정된 크기를 가진다. - 연결리스트는 스택의 크기에 재약이 없다. - 다만, 포인터를 사용해 주소값을 저장하기 때문에 4바이트의 공간이 더 필요하게 된다. 1. 연결리스트 스택 구현을 위한 연결리스트 생성 typedef struct stack { // 연결리스트 노드 구조체 정의 char data; // data를 저장하는 변수 struct stack* link; // 다음 노드의 주소값을 저장할 포인터 변수 } stack; // typedef으로 struct 이름 지정 stack* top; // 스택의 맨 위 노드 주소를 저장하는 포인터 변수 2. 스택 상태 확인 함수 int isEmpty() { if(top == NULL) { printf("Error : Stac.. C언어 구조체란? 구조체 개념 구조체란 사용자가 c언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입이다. 구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있다. 배열이 같은 타입의 변수 집합이라면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것이다. 이때 구조체를 구성하는 변수를 구조체의 멤버 또는 멤버 변수라고 한다. 구조체 정의와 선언 구조체 정의는 struct키워드를 사용한다. struct 구조체이름 { 멤버변수1의 타입 멤버변수1의 이름; 멤버변수2의 타입 멤버변수2의 이름; .... }; struct book { char title[30]; char author[30] int price; }; 아래와 같이 변수를 선언할 수 있다. struct book my_.. 자바 데이터베이스 접속 방법 package oracle_com; import java.lang.reflect.InvocationTargetException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import oracle.jdbc.OracleDriver; public class OracleConn { public static void main(String[] args) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentExce.. 도메인 주도 설계의 개념 소프트웨어가 복잡한 이유는 도메인이 복잡하기 때문인데, 도메인 주도 설계란 그러한 복잡도를 낮추기 위한 방법론 중의 하나라고 볼 수 있다. 소프트웨어 설계를 할 때 우리는 도메인을 올바르게 관리하고 표현할 방법을 찾아야 하는데 흔히 빠지는 착각 중에 하나가 기술에만 집착을 하는 것이다. 도메인을 깊이 이해하는 것이 프로그램의 복잡성을 낮추는 핵심이다. 프로그래머처럼 생각하는 법 좋지 않은 조언 - 간단한 게임부터 만들어봐라' - 테트리스 같은 거 - C++ 같은 거 많이 쓰니까 그거부터 해봐라. - 제일 좋은 방법은 너가 풀고 싶은 문제부터 풀기 시작하는거야. - 실제 real world 문제를 풀어보도록 하자. 좋은 조언 - 프로그래밍은 언어에 관한 것이 아니다. - 언어는 사실 중요하지 않다. - 외워야할 것은 어디에도 없다. - 프로그래밍 대부분은 수학과 관련이 없다. - 프로그래밍 언어는 사실 인간의 언어보다 단순하다. - 프로그래밍은 사실 문제해결이다. - 바보같은 컴퓨터에 하나하나 가르쳐주는 것이다. 프로그래밍은 언어에 관한 것이 아니다. 1. 코딩은 8가지 개념만 있다. 2. 모든 언어에서 작용한다. 3. 이 개념을 인간의 언어로 쓰는 법을 배워라. 4. 자신이 쓰.. 포인터, 배열, 구조체 포인터 변수란? 변수 - 프로그램에서 사용되는 값을 저장하기 위한 컴퓨터 메모리 상의 일정 영역 포인터 변수 - 어떤 변수의 위치를 참조하고 그 주소값을 저장한다. - 포인터 변수에는 주소값만을 저장할 수 있다. 포인터의 장점 - 기존 프로그래밍에서는 변수만 조작이 가능하기 때문에 변수를 수정해야 했지만, 포인터를 사용하므로써, 변수는 그대로 두고 포인터를 조작할 수 있다는 장점이 있다. - 가장 빠르게 프로그램할 수 있다는 것. C언어를 활용한 스택자료구조 구현 (포인터 개념 제외) #include int arr[10]; int idx = 0; void push(int n) { if(idx>=10) { printf("오류: 배열이 꽉 찼습니다.\n"); return; } arr[idx] = n; idx++; return; } int Top(void) { if (idx < 0) { printf("오류: 배열이 비었습니다.\n"); return; } return arr[idx-1]; } int pop() { if (idx < 0) { printf("오류: 배열이 비었습니다.\n"); return; } idx--; return arr[idx]; } void clear(void) { idx = 0; return; } void StackPrint(void) { int i; for (i=0;i List Interface (리스트 인터페이스) List Interface 1. 동일한 특성의 데이터를 묶어준다. 2. 인덱스를 사용하기 때문에 반복문의 변수를 통해 데이터를 모두 접근가능하다. 배열 1. 처음 선언한 배열의 크기는 변경할 수 없고, 이를 정적 할당이라고 한다. 2. 메모리에 연속적으로 나열되어 할당된다. 출처: https://st-lab.tistory.com/146 이전 1 ··· 3 4 5 6 7 8 9 ··· 19 다음