디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

형들 C언어 한번만 도와주세요 ㅠ

;;(121.128) 2009.12.14 17:27:35
조회 80 추천 0 댓글 0




이번에 데이터 스트럭쳐 과목 때문에, 레드 블랙 트리를 만들어 내야 하는데

씨언어도 제대로 배운적도 없는데 어떻게 어떻게 해서 여기까지 진행했는데, 로테이션을 어떻게 해야할지 막막해..

정확히는.. 로테이션을 하면 PRINT가 안되는 상황이 발생하고 있어..

포인터 때문에 그런거 같은데.. 형들 제발 도와주세요 ㅠ

void insertElement(Node ** root, int newElement)
{
 Node *nparent;
 Node *uncle;
 Node *gparent;
 Node *temp;
 Node *temp2;
 Node *temp3;
 Node *temp4;
 if (root == NULL)
 {
  printf("Error no root pointer\\n");
  return;
 }
 nparent = NULL;
 uncle = NULL;
 gparent = NULL;
 temp = NULL;
 temp2 = NULL;
 temp3 = NULL;
 temp4 = NULL;
 while (*root != NULL)
 {
  // Insert to the left of this node
  if (newElement <  (*root)->element)
  {
   nparent = (*root);
   root = &((*root)->left);
  }
 
  // Insert to the right of this node
  else if (newElement > (*root)->element)
  {
   nparent = (*root);
   root = &((*root)->right);
  }
 }
 // This pointer is NULL, so create a new node and add it here
 *root = newNodeElt(newElement);// BINARY 트리
 printf("%d\\n",&(*root));
 printf("%d\\n",&((*root)->left));
 printf("%d\\n",&((*root)->left->left));
 printf("%d\\n",&((*root)->right));
 printf("%d\\n",&((*root)->right->right));

 if(nparent != NULL) (*root)->parent = nparent;//parent 노드의 성립
 if(nparent == NULL)
 {
  (*root)->color = BLACK;//루트 노드의 색 정의
  (*root)->parent = NULL;
 }
 else
 {
  
  if((*root)->parent->parent != NULL)
  {
   gparent = (*root)->parent->parent;
   if(gparent->left == (*root)->parent && gparent->right != NULL) uncle = gparent->right;
   if(gparent->right == (*root)->parent && gparent->left != NULL) uncle = gparent->left;
  }//uncle과 gparent의 선언
  if((*root)->parent->color == BLACK)
  {
   printf("**루트의 값 %d",**root);
   printf("&(*root): %d\\n",*(&(*root)));
   printf("(*root): %d\\n",(*root));
   printf("root: %d\\n",root);
   printf("*root: %d\\n",*root);
   printTreeInOrder(root);
   //이미 balance tree
  }
  else if((*root)->parent->color == RED)
  {
   if(uncle != NULL && uncle->color == RED)
   {
    (*root)->parent->color = BLACK;
    uncle->color = BLACK;
    gparent->color = RED;
    if(gparent->parent == NULL) gparent->color = BLACK;
   }//case3

  else if(gparent != NULL)//parent red, uncle은 없거나 BLACK case3~5 //parent == red
  {
    if(((*root) == (*root)->parent->right) && ((*root)->parent == gparent->left))
    {
     // left rotation 필요
    }
    else if(((*root) == (*root)->parent->left) && ((*root)->parent == gparent->right))
    {
     // right rotation 필요
    }
    (*root)->parent->color = BLACK;
    gparent->color = RED;
    if((*root) == (*root)->parent->left && (*root)->parent == gparent->left)
    {
     //right lotation 필요
    }
    else
    {
     //left rotation 필요
    }
  }

  }//parent == red end
 }
}

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
273172 디지털 회로 공부좀 해본 사람 헬프요;; [21] 통맥갤로그로 이동합니다. 11.09.18 170 0
273171 하나 더 묻겠는데 전산직공무원 하는 일이뭐임? 파인애플사갤로그로 이동합니다. 11.09.18 135 0
273170 리눅스 콘솔에서 외장하드로 들어가려면 어케함? [4] ㄹㄴㅇㄷㅈ(211.109) 11.09.18 73 0
273169 아우 쉬벨 자바 좀하는쉑이 봐라 [2] 쵸쵸(219.251) 11.09.18 69 0
273168 변수 알듯말듯 약올리네 힙꼬맹갤로그로 이동합니다. 11.09.18 30 0
273167 IT 쪽은 거의다 밤낮새고 그러잖아 [5] 파인애플사갤로그로 이동합니다. 11.09.18 273 0
273166 윈팔 사양이 어케되냐 [2] 로하로하알로하갤로그로 이동합니다. 11.09.18 62 0
273164 [히츨의 T4정보] 프로젝트 T4 프로그램 [3] 히츨스페르거갤로그로 이동합니다. 11.09.18 102 0
273163 형들 보통 자바스크립트 600줄 짜리 코드 짜는데 얼마나걸려요?? [2] 123(218.236) 11.09.18 103 0
273161 C++ 개병쉰같다 진짜 왜 병쉬같이 쳐 나눈게 많을까? [8] lol(110.174) 11.09.18 204 0
273160 IT 관련 직업중에 제일 스트레스 안쌓이는것은? [5] 파인애플사갤로그로 이동합니다. 11.09.18 184 0
273159 지하철밀인대 [1] Unia갤로그로 이동합니다. 11.09.18 78 0
273157 컴터 관련된 갤을 전부다 합치는거다. [4] 파인애플사갤로그로 이동합니다. 11.09.18 91 0
273156 궁금한게 잇는데 빈프로젝트 꼭 눌러야해? [2] 힙꼬맹갤로그로 이동합니다. 11.09.18 69 0
273155 찔질찌질 [1] Adelposs갤로그로 이동합니다. 11.09.18 46 0
273154 횽들 c랑 자바랑 버블 정렬 시켰는데 원래 코딩에서 차이 나는거임? [4] aaaa(58.235) 11.09.18 68 0
273152 가가라이브 보안코드 해시충돌을 시켰는데 [5] 나 프갤할레갤로그로 이동합니다. 11.09.18 91 0
273151 요즘 펌웨어하면 어떨까 [1] ㅁㄴㅇ(116.42) 11.09.18 100 0
273150 프로그래밍쪽으로 나가면 답이없나요? [1] 프로그래밍쪽(121.182) 11.09.18 88 0
273149 안드로이드에서도 Unia갤로그로 이동합니다. 11.09.18 31 0
273147 요즘 가요 중 그나마 들을 만한 곡 [3] 거칠게갤로그로 이동합니다. 11.09.18 89 0
273146 꿀레얌 [1] Adelposs갤로그로 이동합니다. 11.09.18 58 0
273145 삼성 태블릿 VS 소니 태블릿 비교 동영상 [1] 분당살람갤로그로 이동합니다. 11.09.18 68 0
273144 버츄어 박스 안 깔린다. [2] 로하로하알로하갤로그로 이동합니다. 11.09.18 35 0
273143 웹디자인 어케 접근해야 함? [7] (61.255) 11.09.18 129 0
273141 안드로이드 개발할려면... [6] 봉제인형포포리갤로그로 이동합니다. 11.09.18 140 0
273140 예전에 제온 존나 비싸지 않았냐? ㅋㅋ [3] 분당살람갤로그로 이동합니다. 11.09.18 66 0
273139 제대하고 오니까 프갤러 다 어디갔냐? [10] ㅇㅍ(175.113) 11.09.18 107 0
273137 역시 게입이 프로그래밍의 꽃이구나 ㅡㅜ [2] 거칠게갤로그로 이동합니다. 11.09.18 155 0
273136 후 기계어배워야지 [1] ♥♡정수정♡♥갤로그로 이동합니다. 11.09.18 57 0
273135 웹 앱이면 다운 받을 필요가 없는거야 ㅡㅡ?? [2] 거칠게갤로그로 이동합니다. 11.09.18 75 0
273134 고1 질문좀 할게요 [2] afaf(119.69) 11.09.18 50 0
273133 웹앱이 뜬다고 언플하는데 이거 언플 같다 [1] 거칠게갤로그로 이동합니다. 11.09.18 79 0
273132 서울에 있는 횽아들 질문있어 monoless갤로그로 이동합니다. 11.09.18 34 0
273131 횽들아 아이폰 개발책 추천 좀 거칠게갤로그로 이동합니다. 11.09.18 47 0
273130 구구싱 [2] ♥♡정수정♡♥갤로그로 이동합니다. 11.09.18 32 0
273127 사람마다 생각이 다르다는게 너무 싫다. 고등 교육을 좀 더 획일화했으면 [2] ㅇㅇ(222.107) 11.09.18 76 0
273126 아씨 형들 [2] Adelposs갤로그로 이동합니다. 11.09.18 38 0
273125 솔직히 사람들이 C++이 어렵다고 생각하는 이유가 뭔지모르겠따 [2] lol(110.174) 11.09.18 168 0
273124 아싸 학교 숙제 다해간다 2틀만에 거의 다했네 [3] lol(110.174) 11.09.18 128 0
273123 [자바] 제발 이거 오류좀 잡아주셈 형들 .ㅠㅠ [3] 이히(118.130) 11.09.18 63 0
273122 난 디자이너도 좋던데 쿄스케갤로그로 이동합니다. 11.09.18 37 0
273121 형들 여기 매틀랩도 질문하면 받아줘????.jpg [5] Matlab(125.128) 11.09.18 130 0
273120 보안 or 게임 둘중 하나 ........... 보안보안(118.35) 11.09.18 52 0
273119 근데 롯데리아는 왜 [1] 분당살람갤로그로 이동합니다. 11.09.18 58 0
273117 자바 case문 질문이요 ㅠ [1] 이하(118.130) 11.09.18 56 0
273116 [돈벌레의 T4정보] 형들 이거 프로젝트 T4라는 프로그램인데 돈벌레(121.137) 11.09.18 69 0
273115 C#에서 난수 표현을 할 때 [8] 좌우지장지지(211.246) 11.09.18 115 0
273114 갑자기 왜 보안관련 얘기가 나오는거야?? [1] 1234(110.11) 11.09.18 59 0
273112 형님들. 해킹 관심 많은 고딩 질문좀 받아줘요. [3] KY0N갤로그로 이동합니다. 11.09.18 147 0
뉴스 [티처스2] 조정식, 솔루션 최초 실패! 결국 재도전 사태...“영어에서 희망 보이지 않아” 충격! 디시트렌드 06.29
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2