~cpp
// 가 ㅋㅋㅋㅋㅋㅋㅋㅋ
/*
int a; //
a = 10; //
int b = 10; // &
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _slist List;
typedef struct _slist{ // 구
int num;
List *next;
List *prev;
}List;
/*
struct _slist{
int num;
List *next;
List *prev;
};
typedef로 'strucrt _slist'를 List로 다.
, "List *aaa" == "struct _slist *aaa"
*/
#include "ExList.h"
void ShowList(List *plist)
{
List *p; // 구 .
p=plist;
while(p)
{
printf("%d\n",p->num);
p=p->next;
}
}
void main()
{
List *pList,*pNew,*pIns; // struct _slist *pList, *pNew, *pIns; 구3개
pList=(List *)malloc(sizeof(List)); // malloc (List *)가 단 기가 List 메모리 공 고 그 메모리 공 를 반다. 그 가 pList 대()된다.
pList->next=0; // 구가 부 다는 것 다. 0로.
pList->prev=0; // 구가 끝 부 다는 것 다.
pList->num=1; // 구 가 1 것 다.
printf("root\n"); // *pList를 root로 다.
ShowList(pList);
pNew=(List *)malloc(sizeof(List));
pList->next=pNew; // pList 다 struct가 pNew것 . pList ---> pNew
/*
pList->next 것 (*pList).next 동다.
*/
pNew->num=2; // 두 struct 것 다.
pNew->prev=pList; // pNew struct가 pList것 . pList <--> pNew
pNew->next=0; // pNew 다 struct가 다는 것 .
printf("pNew\n");
ShowList(pList);
pIns=(List *)malloc(sizeof(List));
pIns->num=3; // 3 struct란 것 .
pIns->prev=pList; // pIns를 pList pNew 는다. (pList <-- pIns)
pIns->next=pNew; // pList <--> pNew, pIns ---> pNew
pList->next=pIns; // pList <--> pIns, pIns ---> pNew, pList <--- pNew (pList <--> pList, pList <--- pNew <--- pIns)
pNew->prev=pIns; // pList <--> pIns, pIns <--> pNew (pList <--> pIns <--> pNew)
printf("pIns\n");
ShowList(pList);
pList->next=pNew; // ;;;
pNew->prev=pList;
free(pIns); // malloc로 만들 메모리 모 는 메모리는 다 반되다. (그렇 면 메모리가 가득 가 다. ㅋㅋ)
printf("pIns \n");
ShowList(pList);
free(pNew);
free(pList);
}