자료구조 단순연결리스트 삽입에서 역순까지 구현한 소스코드
- 최초 등록일
- 2023.04.07
- 최종 저작일
- 2018.10
- 5페이지/ 어도비 PDF
- 가격 1,000원
소개글
자료구조 단순연결리스트 삽입에서 역순까지 구현한 소스코드 입니다.
삽입 연산
삭제 연산
방문연산: 반복 버전 순환 버전
탐색 연산
합병 연산
역순연산
노드 수 계산연산
항목의 위치로 선행 노드 찾기 함수
노드를 동적으로 생성하는 함수
역순연산 연결리스트 생성
목차
1.삽입 연산
2.삭제 연산
3.방문연산: 반복 버전 순환 버전
4.탐색 연산
5.합병 연산
6.역순연산
7.노드 수 계산연산
8.항목의 위치로 선행 노드 찾기 함수
9.노드를 동적으로 생성하는 함수
10.역순연산 연결리스트 생성
본문내용
#include <stdio.h>
#include <stdlib.h>
typedef int element;
typedef struct ListNode {
element data;
struct ListNode *link;
} ListNode;
//삽입 연산
//phead: 리스트의 헤드 포인터의 포인터, p: 선행 노드, new_node: 삽입될 노드
void insert_node(ListNode **phead, ListNode *p, ListNode *new_node) {
if (*phead == NULL) { // 공백리스트인 경우
new_node->link = NULL;
*phead = new_node;
}
else if (p == NULL) { // p가 NULL이면 첫번째 노드로 삽입
new_node->link = *phead;
*phead = new_node;
}
else { //일반적인 경우 : p 다음에 삽입
new_node->link = p->link;
p->link = new_node;
}
}
//삭제 연산
//phead: 헤드 포인터에 대한 포인터, p: 삭제될 노드의 선행 노드, //removed: 삭제될 노드
void remove_node(ListNode **phead, ListNode *p, ListNode *removed)
{
if (p == NULL)
*phead = (*phead)->link; //p가 NULL인 경우
else
p->link = removed->link; //p가 NULL이 아닌 경우
free(removed); //동적 할당된 메모리 반납
}
//방문 연산 : 반복 버전
void display(ListNode *head)
{
ListNode *p = head;
while (p != NULL) {
printf("%d->", p->data);
p = p->link;
}
printf("\n");
}
참고 자료
없음