게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
죄송한데
게시물ID : programmer_5732짧은주소 복사하기
작성자 : 껌주까
추천 : 1/6
조회수 : 510회
댓글수 : 4개
등록시간 : 2014/10/01 22:31:00

#include <stdio.h>
#include <malloc.h>

typedef struct node
{
 struct node * pPrev;
 struct node * pNext;
 int num;
} NODE;
typedef struct list
{
 NODE * pHead;
 NODE * pTail;
 int    nodeCount;
} LIST;

void addTail(LIST*,NODE*);
void addHead(LIST*,NODE*);
//앞으로 끼워넣기
NODE *newNode();
void exitList(LIST*);
void disp(LIST*);
void main()
{
 LIST list = {NULL,NULL,0}; 
 NODE *pNew = NULL; 
 
 char isContinue; 
 
 do
 {
  printf_s("숫자입력 : ");
  pNew = (NODE*)malloc(sizeof(NODE)); //메모리 동적할당
  scanf_s("%d",&pNew->num); 
  pNew->pPrev=NULL;
  pNew->pNext=NULL;

  getchar();
  printf("\n계속하시겠습니까??  y/n ");
  scanf_s("%c",&isContinue,1);
  
  addTail(&list,pNew);
  
 } while (isContinue =='y');
 disp(&list);



 do
 {
  printf_s("숫자입력 : ");
  pNew=(NODE*)malloc(sizeof(NODE));
  scanf_s("%d",&pNew->num);
  pNew->pPrev=NULL;
  pNew->pNext=NULL;
  getchar();
  printf_s("\n계속? y/n ");
  scanf_s("%c",&isContinue);
 } while (isContinue=='y');
 disp(&list);
 exitList(&list); 
}
void exitList(LIST * pL)
{
 NODE * pCur=pL->pHead;
 NODE * pDel=NULL;
 while(pCur) {
  pDel = pCur;
  pCur=pCur->pNext;
  if(pDel) free(pDel);
 }
}

//NODE *newNode()
//{
// ///NODE *pNew=NULL;
// NODE pNew;
// pNew=(int*)malloc(sizeof(int));
//}

void addTail(LIST*pList ,NODE *pNode)
{
 // 빈리스트 LIST에 노드 1개 추가하면
 // 리스트 헤드,테일 노드는 방금 추가한 노드이고
 // 리스트엔 그노드가 한개만 있으므로
 // 리스트 nodeCount값은 1이 증가 되어야 한다.
 if(pList->nodeCount==0)
 {
  pList->pTail=pNode;
  pList->pHead=pNode;
 }
 else
 {
  pNode->pPrev = pList->pTail;  //새로들어온 데이터의 처음주소에 pList의 pTail의 주소값을 넣고
  pList->pTail->pNext = pNode;  //pList의 pTail의 pNext는 지금 들어온 pNode의 주소값을 넣고
  pList->pTail = pNode;           // pList의 pTail

  
 }
 pList->nodeCount++;  
 return;
}


void disp(LIST * pL)
{
 
 NODE * pCur=pL->pHead;
 
 while(pCur)
 {
  printf("%d\n",pCur->num);   
  pCur=pCur->pNext;
 }
}

이거이.. c언어 인데여...

숫자를 ㄱㅔ속 입력받아 메모리를 동적할당받아 쌓아놓았다가 디스플레이하는 링크드 리스트 인데요~

저 굵은 글씨체로 써 놓은 부분이 이해가 안갑니다.


친절하고 상냥하고 멋있는 오유형님누나동생친구들 ~

좀 가르쳐주세요~

머 이론적으로는 이해가 가는데 이해력이 딸려~ 저 굵은글씨중에 두번째는 더더더욱 이해가 안가네요~

누가 좀 디테일하게 설명해주실분 엄나요???

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호