전체 글 썸네일형 리스트형 [자료구조] 연결리스트의 개념과 배열리스트와의 비교 연결리스트(Linked List)란 ?포인터를 이용하여 자료를 끊김 없이 연결되어 순차적으로 저장되는 것. 배열리스트와의 가장 대표적인 차이점배열리스트는 물리적 위치가 순차적이지만 ,연결리스트는 단순히 논리적 위치만 순차적이고 물리적 위치는 순차적이지 않을 수 있다는 것! 즉, 최대 원소 개수를 지정하는 것에 대한 차이가 있다.배열리스트는 무조건 최대 원소 개수를 지정해야하지만 연결리스트는 지정해줄 필요가 없다. 연결리스트의 구조노드(Node) = 자료 + 링크 연결리스트의 노드 추가와 제거는 링크 정보를 추가하거나 제거하는 것 배열리스트는 원소의 추가와 제거가 원소의 이동을 의미한다.노드 추가하기 노드 추가시 기존에 연결되어있던 링크를 제거하고 새로운 링크를 추가하여 다시 잇는다노드 제거하기 노드 제거.. 더보기 [자료구조] 배열리스트의 특징과 원소 추가 제거 방법 - 배열리스트(ArrayList) 논리적 (저장)순서와 물리적 저장 순서가 동일하다 원소의 위치 인덱스는 0부터 시작한다 (C배열에서와 동일) 배열리스트의 단점 원소의 개수가 10만개인 배열리스트에서 원소의 추가/제거가 빈번하게 발생한다면? 중간에 추가 제거가 일어날때 해당 데이터와 관계없는 데이터들의 이동이 필요하다 배열리스트의 원소 추가 추가전 시작 지점과 방향, 어디까지 의 3가지 점을 주의해야함 1의 위치에 5를 삽입하기위해 가장 뒤에 있는값을 하나씩 옮긴 후 새로운 데이터를 삽입한다 추가가능한 위치인지 확인 필요 newElementCount 개수 만큼 값을 추가로 저장할 수 있음 int addALElement(ArrayList* pList , int position, ArrayListNode e.. 더보기 [자료구조] 리스트의 개념, 리스트 사용을 위한 추상자료형 리스트(List) : 자료를 순서대로 저장하는 자료구조 구조가 매우 단순 여러 개의 자료가 일직선으로 서로 연결된 선형 구조 선형구조 - 자료가 1:1 관계인것. 리스트의 구현 배열리스트(Array List) C언어에서 제공하는 배열(array)을 이용하여 구현된 리스트 배열 vs. 배열리스트 배열 : 같은 자료형의 데이터가 메모리 상에 연속적으로 저장되는 것 배열리스트 : 자료가 일직선으로 서로 연결 배열리스트는 배열과 달리 서로 연결되어있어야 하기 때문에 중간에 자료를 제거하거나 추가할때 고려해야할 사항들이 있음 끊기지 않도록 자료를 서로 연결시켜주어야함 중간에 자료를 추가할 경우에는 두ㅣ의 자료들을 한칸씩 뒤로 이동시켜줘야함 연결리스트(Linked List) - 포인터를 이용한 구현 리스트 사용 예.. 더보기 [자료구조] 포인터의 포인터의 의미와 사용방법 포인터의 포인터 : 포인터 변수를 가리키는 포인터 변수 int int_value = 100; int *ptr_int = &int_value; int **pptr_int = &ptr_int; 포인터의 포인터는 주소가 저장된 포인트 변수의 주소를 저장하는 변수. 변수 int_value : 100 포인터 변수 ptr_int : c300 포인터 변수 ptr_int가 가리키는 변수의 값 : 100 더블포인터 변수 pptr_int : b200 더블포인터 변수 pptr_int 가 가리키는 주소 : c300 더블 포인터 변수 pptr_int 가 가리키는 주소가 가리키는 값 : 100 - 행과 열의 크기에 따라 동적으로 배열을 생성 int row = 3; int col = 4; int **pptr_int_array = .. 더보기 [자료구조] 포인터를 이용한 동적 메모리 할당 동적 메모리 할당 (Dynamic Memory Allocation) : 프로그램 실행 도중 동적으로 메모리를 할당하는 것 동적 : 할당될 메모리의 크기가 컴파일할 때 미리 정해져 있지 않았다는 의미 - 정적메모리 할당(Static Memory Allocaion) : 프로그램이 실행되기 전에 할당해야 할 메모리의 크기가 미리 정해진 경우 //정적 메모리 할당의 잘못된 예 int size= 100; int int_array[size] = {0,};//오류발생 동적메모리 할당을 위의 소스 처럼 실행하면 오류가 발생한다. 방법 1) 정적메모리 할당 방법 2) 동적 메모리 할당 int int_array[100] = {0, }; int *ptr_int = NULL; int size = 100; .... size =.. 더보기 [자료구조] 포인터의 의미와 사용법(참조연산자 *, 주소연산자 &) 포인터 변수 (Pointer Variable) : 메모리주소(Memory Address) 값을 저장하는 변수 int *ptr_int = NULL; 자료형 (a) * 연산자(b) 변수 이름 (c) int * ptr_int - NULL로 초기화 int int_value = 100; int *ptr_int = NULL; ptr_int = &int_value; 포인터 변수에는 int_value의 시작 주소값이 저장된다. 주소를 저장할때에는 "&" 연산자를 사용한다. + 기본적으로 주소를 가르키는 포인터의 크기는 4byte를 이용한다. 포인터 변수의 초기화 방법 1) 변수의 초기화 방법 2) 값 설정 int *ptr_int= &int_value; int *ptr_int = NULL; ptr_int = &int_v.. 더보기 [자료구조] 구조체의 정의와 선언 및 초기화 구조체(Structure) : 서로 다른 자료형의 데이터를 하나의 그룹으로 묶은 자료형 구조체의 선언 struct student{ char name[20+1];//+1은 null문자를 추가해준 것. intnum; float grade; } 구조체의 초기화 방법 1) 구조체의 초기화 방법 2) 값 설정 struct student student_lee = {"lee",2004153648, 92.5}; struct student student_lee={0}; strcpy(student_lee.name,"lee"); student_lee.year = 2004153648, student_lee.grade = 92.5; 구조체 변수의 복사(값 복사) struct student lee_src = {"lee",2004.. 더보기 Windows 10에서 HEVC 코덱(H.265 비디오용) 오류 해결법 [동영상코덱]아이폰에서 정상으로 재생되는 영상, Windows 10에서 안나오는 오류 해결법 , HEVC 코덱(H.265 비디오용)을 무료로 다운로드 최근에 아이패드에서 영상 작업을 해서 조금 높은 해상도로 내보내기를 해서 윈도우로 옮겼는데요 코덱에러가 나서 영화 및 TV 앱에서 실행이 되지않더라구요ㅠㅠ 영상이 안나오고 음성만 나오는 현상이 ㅠㅠ 찾아보니 HEVC 코덱을 다운로드 하라는 알림이 뜨고 있었습니다! Microsoft Store 에서는 1,200 원에 구매하도록 되어있는데요.. 이것때문에 1200원쓰는게 또 은근 돈아깝더라구요? 그래서 찾아보니까 위 앱을 설치하면 된다는데 보시다시피.., 다운로드 버튼이 없고 코드 사용버튼만 남아있죠..? 다운로드 받는걸 막아놓은 건데요, 다행이도 이전버전으로.. 더보기 이전 1 ··· 9 10 11 12 13 다음