printf("ho_tari\n");

과제 - 단순 연결리스트 구현 본문

대학교 2학년 1학기/데이터구조

과제 - 단순 연결리스트 구현

호타리 2023. 9. 4. 11:38
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define _CRT_SECURE_NO_WARNINGS

typedef struct NODE
{
	int no;
	char name[20];
	int age;
	struct NODE* next;
}NODE;

struct NODE* search(NODE* list, NODE* p)
{
	int q;
	printf("input number to search: ");
	scanf_s("%d", &q);

	p = list;

	while (p != NULL)
	{
		if (q == p->no)
		{
			printf("search %d %s %d \n", p->no, p->name, p->age);
			break;
		}
		else
		{
			p = p->next;
		}
	}
	return p;
}

struct NODE* print(NODE* list, NODE*p)
{
	p = list;

	while (p != NULL)
	{
		printf("[%d %s %d] \n", p->no, p->name, p->age);
		p = p->next;
	}
	return p;
}
int main()
{
	NODE* list = NULL;
	NODE* pr = NULL;
	NODE* p = NULL; 
	NODE* next = NULL;
	int num = 0;
	char buffer[20];

	while (num != 4)
	{
		printf("====1.add 2.search 3.print 4.exit\n");
		scanf_s("%d", &num);

		switch (num)
		{
		case 1:
		{
			p = (NODE*)malloc(sizeof(NODE));

			printf("input number: ");
			scanf_s("%d", &p->no);
			gets_s(buffer, 20);
			printf("input name: ");
			gets_s(p->name, 20);
			printf("input age: ");
			scanf_s("%d", &p->age);

			if (list == NULL)
				list = p;
			else
				pr->next = p;

			p->next = NULL;
			pr = p;

			break;
		}

		case 2:
		{
			NODE* p2 = search(list, p);
			break;
		}

		case 3:
		{
			NODE* p3 = print(list, p);
			break;
		}

		case 4:
		{
			printf("terminate...\n");
			break;
		}
		default:
			break;
		}
	}
}

homework_04_2019270774.docx
0.55MB