컴공 일기186
게시글 주소: https://orbi.kr/00058447853
스택, 큐, 리스트 등등... 오늘 자료구조만 하루 종일 만졌더니 뇌가 인텔 CPU가 된 기분입니다.
이제 그만하고 자야겠습니다.
#include <stdio.h>
#include <stdlib.h>
typedef struct Node
{
char szData[64];
struct Node* NextNode;
}Node;
/*전역변수로 헤드를 선언해준다*/
Node* g_Head = NULL;
/*연결리스트 전체 노드 출력 함수*/
void PrintList(void)
{
Node* Head = g_Head;
while (Head != NULL)
{
printf("[%p] %s, next[%p]\n",
Head, Head->szData, Head->NextNode);
Head = Head->NextNode;
}
putchar('\n');
}
/*노드를 추가하는 함수*/
int InsertNewNode(char* pszData)
{
Node* pNode = (Node*)malloc(sizeof(Node));
/*기본적으로 memset으로 메모리 초기화를 꾀했다*/
memset(pNode, 0, sizeof(Node));
strcpy_s(pNode->szData, sizeof(pNode->szData), pszData);
if (g_Head == NULL)
g_Head = pNode;
else {
pNode->NextNode = g_Head;
g_Head = pNode;
}
return 1;
}
int FindData(char* pszData)
{
Node* pTmp = g_Head;
while (pTmp != NULL)
{
if (strcmp(pTmp->szData, pszData) == 0)
return 1;
pTmp = pTmp->NextNode;
}
return 0;
}
//전반적 소감 : 더미 헤드를 추가하지 않으면 삭제할 노드의 전 노드를 찾아야 하는 노가다가 발생한다.
int DeleteData(char* pszData)
{
Node* pTmp = g_Head;
Node* pPrev = NULL;
while (pTmp != NULL)
{
if (strcmp(pTmp->szData, pszData) == 0)
{
//탐색 데이터를 헤드 노드가 안 갖고 있는 경우
if (pPrev != NULL)
{
pPrev->NextNode = pTmp->NextNode;
}
//탐색 데이터를 헤드 노드가 갖고 있는 경우
else
{
g_Head = pTmp->NextNode;
}
free(pTmp);
return 1;
}
pPrev = pTmp;
pTmp = pTmp->NextNode;
}
}
void ReleaseList(void)
{
Node* pTmp = g_Head;
while (pTmp != NULL)
{
/*반복문 안에서 변수 선언하면 안 되지 않아? -> 최근엔 조금 애매해지긴 해졌다. 컴파일러 최적화 과정!*/
Node* pDelete = pTmp;
pTmp = pTmp->NextNode;
printf("Delete: [%p] %s\n", pDelete, pDelete->szData);
free(pDelete);
}
}
int main()
{
//List 테스트를 위한 코드
InsertNewNode("TEST01");
InsertNewNode("TEST02");
InsertNewNode("TEST03");
if (FindData("TEST01") == 1)
printf("FindData(): TEST01 found\n");
if (FindData("TEST02") == 1)
printf("FindData(): TEST02 found\n");
if (FindData("TEST03") == 1)
printf("FindData(): TEST03 found\n");
DeleteData("TEST01");
DeleteData("TEST02");
PrintList();
ReleaseList();
return 0;
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
4덮 5뜨고 아무것도 안하다가 5모 84? 맞고 그후로 실모만 양치기했는데 오늘...
-
언매 87 비문학1 문학1 언매3 틀... 언매 아리까리한거 다틀린게 레전드 그래도...
-
물리 어카지 1
나름 기출 한번 했는데.. 30점이네
-
5덮 등급 0
95 76 2 38 41 언매 미적 정법 사문 입니당 대충 어느정도 나오려나여
-
필요없죠... 아아아아 국어 진심 실수 ㅈㄴ하고 매체에 별 병신같은거 틀리고 수학은...
-
97 77 90 26 26 사탐은 아직 시작 안했어요.. 한의대까지 올리기...
-
안녕하세요 '지구과학 최단기간 고정 1등급만들기' 저자 발로탱이입니다. 지난 1년간...
-
쎈발점 0
노베에서 시작해서 중등수학총정리,현우진 노베 (도형,공수1~2) 끝내고 바로 수1...
-
ㅜㅜ
-
제발 알려줄사람 개궁금함 검색하면 나오냐
-
평소에 급수난도 생각하고 드갓다가 계산좀팍팍해서 어버버함
-
신발끈 공식 빼고는 넓이 구하는 방법 머르겠음…
-
11 12 14 20 29(기하) 다 내가 풀어볼만 했고 실제로도 잘 접근했는데...
-
지로함수 도형 섞인 거 어려운데 문제집 추천 좀 강의도 ㄱㅊ 시대라이브도 ㄱㅊ
-
망한 5모 ㅇㅈ 6
투과목 표본 수준이 말이 안되네요
-
아 29번 2
어디서 실수한겨 에휴이
-
보고 두 눈을 의심했네 어떻게 기하쌤 이름이 도형 ㅋㅋㅋㅋ
-
화작 확통 영어 생윤 사문 98 84 95 45 44 올해 성불 가능할까 ㅠㅠ 설문과 가고싶음
-
수학 체감 3
1번부터 13번까진 무난한 난도로 가다 14 15 얘네가 좀 많이 어려웠다고 생각함...
-
ㅈㄱㄴ
-
풀어볼까
-
3모 64 3덮 68 4덮72 5모 95 5덮85 인데 수능때까지 쭉 정진하면 낮은...
-
.
-
왜 윤석열이랑 같이 보는 건지 궁금했는데 그랬구만
-
공부하자니 스트레스받고 안하자니 점수가 안나오고
-
갈 길이 멀다 0
갈 길이 멀어..
-
작수 백분위74맞고 개쳐망해서 2월부터 수학만 미친듯이하고 엔제풀고 진짜...
-
좋냐? 내얘기는 당얀히 아니고 ㅋㅋ 궁금애
-
첫페 4개나간거 뭐임
-
정석민 독서 1
바독원 베이스 끝내서 어드벤스드 들으려 했는데 비원실이랑 차이가 있나요? 어떤걸 들어야할까요..
-
안올라와 공유해줘
-
분위기에 맞지 않는 이상한 글들을 써서 죄송합니다. 제가 쓴게 맞긴 맞는데...
-
현역기준으로 그런건가
-
뭔가 내가 생각한 문학 느낌이 아니었음. 마치 잘 쓰인 웹소설을 보는 느낌(다른...
-
5덮 국어 언매 2
언어 어려웟냐…. 나 언어 한 문제 맞고 죽었다… 제발 언어 어려웠다고 해
-
우울하니까.. 5
맘스터치 먹어야지..
-
아니 근데 8
계산 실수한 답이 왜 선지에 있는거임 개짜증나네 이럼 절대 못찾자너
-
옥상 올라왓음 4
경치 좋다
-
언매90점이면 무보2는 뜨겠죠??
-
수능끝나고 나선 싹 이야기 들어감 ㅋㅋ 평가원 통수는 의도적으로 경향 파악해서...
-
34덮은 무보 98에 전대모고는 100이였는데 아.
-
대기업 가는 건 ㅈㄴ 힘들고 바늘구멍이라면서 메디컬 가는건 쉬운거지? 메디컬 연봉...
-
으흐흐 2
흐
-
5덮은 집모로 치고 7덮을 학원 가서 치고싶은데 외부생 받는 곳 어디어디 있나요...
-
4덮이랑 다른점 3
5덮은 수학 얘기가 엄청 나오네 아마 어려워서 그런듯
-
ㅇㅇㅇ
-
퍼옴) 키 vs 얼굴 22
생각보다 여자들 얼굴을 많니봄
-
자 풀어야겟지..
queue보고 처음에 뀨뀨인줄 알음
당구 큐 ... ㅋㅋ
c++넘모 어려워요
넘나 어려운 것이에요 개같은 클래스인 것이에요

늘 고맙구 따랑해욤