(윤성우의 열혈 자료구조) 5장/6장

Andy·2022년 3월 22일
0

자료구조

목록 보기
13/14
post-thumbnail

원형 연결 리스트
포인터 변수 head가 무엇을 가리키느냐에 있다.
void LInsert(List plist, Data data) // 꼬리에 노드를 추가
void LInsert(List
plist, Data data) // 머리에 노드를 추가

원형 연결 리스트 adt
void ListInit(List plist);
void LInsert(List plist, LData data);
void LInsertFront(List plist, Data data);
int LFirst(List
plist, Data pdata);
int LNext(List
plist, Data pdata);
Data LRemove(List
plist);
int LCount(List * plist);

원형 연결 리스트 main 함수

#include <stdio.h>
#include "CLinkedList.h"
int main(void) {
	List list;
	int data, i, numNode;
	ListInit(&list);
	LInsert(&list, 3);
	LInsert(&list, 4);
	LInsert(&list, 5);
	LInsertFront(&list, 2);
	LInsertFront(&list, 1);
	if(LFirst(&list, &data)) {
		printf("%d ", data);
		for(i = 0; i < LCount(&list) * 3 - 1; i++) {
			if(LNext(&list, &data))
				printf("%d ", data);
		}
	}
	printf("\n");
	numNode = LCount(&list);
	if(numNode != 0) {
		LFirst(&list, &data);
		if(data%2 == 0)
			LRemove(&list);
		for(i = 0; i < numNode - 1; i++) {
			LNext(&list, &data);
			if(data%2 == 0)
				LRemove(&list);
		}
	}
	if(LFirst(&list, &data)) {
		printf("%d ", data);
		for(i = 0; i < LCount(&list) - 1; i++) {
			if(LNext(&list, &data))
				printf("%d ", data);
		}
	}
	printf("\n");
	return 0;
}

구현
1. 리스트의 초기화와 노드의 삽입
2. 데이터 조회
3. 노드의 삭제

스택 adt
void StackInit(Stack pstack);
int SIsEmpty(Stack
pstack);
void SPush(Stack pstak, Data data);
Data SPop(Stack
pstack);
Data SPeek(Stack *pstack);

배열 기반 stack main 함수

#include <stdio.h>
#include "ArrayBaseStack.h"
int main(void) {
	Stack stack;
	StackInit(&stack);
	SPush(&stack, 1);SPush(&stack, 2);
	SPush(&stack, 3);SPush(&stack, 4);
	SPush(&stack, 5);
	while(!SIsEmpty(&stack)) {
		printf("%d ", SPop(&stack));	
	}
	printf("\n");
	return 0;
}

연결 기반 stack main 함수

#include <stdio.h>
#include "ListBaseStack.h"
int main(void) {
	Stack stack;
	StackInit(&stack);
	SPush(&stack, 1);SPush(&stack, 2);
	SPush(&stack, 3);SPush(&stack, 4);
	SPush(&stack, 5);
	while(!SIsEmpty(&stack)) {
		printf("%d ", SPop(&stack));	
	}
	printf("\n");
	return 0;
}
profile
열정으로 가득 찬 개발자 꿈나무 입니다

0개의 댓글

관련 채용 정보