728x90

LinkedList 4

[ 자료구조 ] linked list 노드 삭제, 연결 리스트를 이용한 스택 큐 구현

[ 자료구조 ] linked list 노드 삭제, 연결 리스트를 이용한 스택 큐 구현 노드 삭제 - ptr : 리스트 첫 노드를 가리키는 포인터 변수 - node : 삭제될 노드를 가리키는 변수 - trail : 삭제될 노드의 바로 앞 노드를 가리키는 변수 삭제될 노드가 첫 노드일 경우 - 삭제 후 ptr의 값이 바뀐다. 따라서 ptr의 포인터 변수로 주소를 받아 ptr의 값을 변경해야 한다. void delete(list_ptr * ptr, list_ptr trail, list_ptr node) { if(node==*ptr) *ptr = node->link; else trail->link = node->link; free(node); } // 리스트의 첫 노드, 삭제될 노드의 앞 노드, 삭제될 노드 v..

CS/자료구조 2021.10.30

[ 자료구조 ] linked list 연결 리스트 , k값을 가진 노드 삭제 삽입 함수

[ 자료구조 ] linked list 연결 리스트 , k값을 가진 노드 삭제 삽입 함수 리스트는 아무 곳에서나 삽입, 삭제가 일어날 수 있다. k값을 가진 노드 삭제 함수 데이터 값이 k인 노드를 찾는다. before : k값을 가진 노드의 앞 노드이다. temp : k값을 가진 노드이다. 이 알고리즘에서 찾는 삭제할 노드이다. before의 링크를 k값을 가지는 링크로 바꾼다. 그리고 반복문을 빠져나온다. #include #include struct node { int data; struct node * link; }; typedef struct node list_node; typedef list_node * list_ptr; void delete(list_ptr p, int k) { list_ptr ..

CS/자료구조 2021.10.29

[ 자료구조 ] linked list 연결 리스트 반복문으로 node 생성하기

[ 자료구조 ] linked list 연결 리스트 반복문으로 node 생성하기 데이터 값이 역순으로 생성되는 경우 #include #include struct node { int data; struct node * link; }; typedef struct node list_node; typedef list_node *list_ptr; int main(){ list_ptr ptr = NULL, before = NULL; int i; // 그 전 노드를 기억하기 위해 before을 사용한다. for(i = 1; idata = i*1; //데이터 값 설정 ptr->link = before; // 첫번째 생성될때는 NULL값이, 반복문이 진행되면 before의 링크가 전달 before = ptr; // ptr..

CS/자료구조 2021.10.29

[ 자료구조 ] 링크드 리스트 Linked List 연결 리스트 동적 기억 장소에서 포인터 사용

[ 자료구조 ] 링크드 리스트 Linked List 연결 리스트 동적 기억 장소에서 포인터 사용 포인터가 가리키는 곳의 타입은 주소로 정수형이지만, 연결 리스트(링크드 리스트)가 가지는 포인터 타입은 가리키는 곳의 타입을 고려해야 한다. sizeof 연산자 sizeof 연산자는 몇 바이트를 차지하는지 알려주는 연산자이다. sizeof(int) = 4 sizeof(float) = 4 sizeof(char) = 1 링크드 리스트 정적 기억 장소에서 포인터 사용 (활용도 낮음) #include #include int main(){ int *pi; float *pf; *pi = 1024; *pf = (float) 3.14; //------------------------compile printf("an inte..

CS/자료구조 2021.10.26
728x90