디시인사이드 갤러리

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

갤러리 본문 영역

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

;;(121.128) 2009.12.14 17:27:35
조회 81 추천 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 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45132 65
2869383 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 17:16 1 0
2869382 1400줄 추가 1000줄 삭제하고 돌렸는데 ←Backspace갤로그로 이동합니다. 17:14 14 0
2869381 가끔 코딩이 뭘까 싶기도하다. 코딩이라는 무형적 지식은 [2] ㅆㅇㅆ(124.216) 17:11 12 0
2869380 그러므로 오늘은 유니티 공부입니다 [1] 루도그담당(211.184) 17:06 27 0
2869379 CLR이나 JVM [16] 루도그담당(211.184) 16:37 96 0
2869376 근데 언어 몇개가 중요한가 그냥 뭘 개발하는지가 중요하지 [18] ㅆㅇㅆ(124.216) 16:27 90 0
2869375 이병신은 C/C++ 개발자한테 하는언어가 몇개냐하네 [45] ㅇㅇ(223.38) 16:20 86 0
2869374 가진것도, 아는것도 없는 인생에 두려울게 있겠습니까?? [2] ㅇㅇ(223.38) 16:09 23 0
2869373 상사가 맥북사비로 사줌 [13] 프갤러(106.101) 16:00 71 0
2869371 일본기업의 '능력주의'가 역겨운 이유 프로외노자갤로그로 이동합니다. 15:44 30 0
2869370 일본기업의 '스페셜리스트' 제도의 한계 프로외노자갤로그로 이동합니다. 15:42 26 0
2869368 지능이랑 사실 지식이랑 좀 다르지 않냐. [4] ㅆㅇㅆ(124.216) 15:32 53 0
2869367 생성형 ai 는 아직 시기상조인거같다 [2] 프갤러(59.10) 15:32 23 0
2869366 나는조현병이야 나는내향적이야 [2] 손발이시립디다갤로그로 이동합니다. 15:26 32 0
2869365 파이썬에서 환율 정보 바로 가져오는 방법 없나 [3] ㅆㅇㅆ(124.216) 15:26 31 0
2869364 여긴 왜 조현병 환자밖에 없음? [2] ㅇㅇ(223.38) 15:07 39 0
2869363 신체적 건강과 강함을 추구하는게 실제 금전적인 면에서도 도움이 되냐?? [1] ㅇㅇ(223.38) 15:03 20 0
2869362 이거 자랑이 아니라 좀 진심인데 [3] 아스카영원히사랑해갤로그로 이동합니다. 14:59 58 0
2869361 누적되는 소음때문에 사람들은 괴롭다. 처벌 수위를 높여야한다. [1] ㅇㅇ(121.169) 14:49 19 0
2869360 국비 개발자하려면 굳이 컴공 따라갈필요없음 [2] 프갤러(117.111) 14:42 54 0
2869359 나는 실력이 없어도 창업 생각한다. [2] 프갤러(218.154) 14:41 44 0
2869358 담배 안핀지가 어언 10일째... 도대체 금연 100일 어케하는거임?? [2] ㅇㅇ(223.38) 14:36 23 0
2869357 보통 능력있으면 창업 생각하지 너처럼 취직 생각하진 않지 않냐. [4] ㅆㅇㅆ(124.216) 14:16 71 2
2869356 여긴 왜캐 요란한애들이 많냐 [3] 프갤러(119.198) 14:09 55 1
2869355 내 작은 목표중 하나가 MFC 기반 HFT 프로그램 직접 다 만들어보는거 ㅆㅇㅆ(124.216) 14:00 31 0
2869354 누가 나님 냥덩이 만진거야? ♥냥덩이♥갤로그로 이동합니다. 13:53 25 0
2869353 근데 MTS, HTS같은거는 내가 주식을 거의 안하기때문에 ㅆㅇㅆ(124.216) 13:48 28 0
2869352 한투 1년 휴가 5일 루머가 아님 [6] 은행계열증권사(223.38) 13:46 46 0
2869351 크래프톤 정글 게임랩 4기 (~7/18) 프갤러(14.32) 13:46 38 0
2869350 한투 개발자 형님들 씨발 문서화도 존나 편하고 능력있으신 행님이 개발팀장 [4] ㅆㅇㅆ(124.216) 13:38 51 0
2869349 한국 투자 증권<<그냥 신임 [7] ㅆㅇㅆ(124.216) 13:21 56 0
2869348 오늘 잘하면 납품할 수 있을듯¿ ㅆㅇㅆ(124.216) 13:20 18 0
2869347 에이 잠 다 깼네.. 자야하는데..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 13:17 20 0
2869345 깃헙에 llm based 컴파일러 떴는데 재밌네 ㅇㅇ(118.235) 12:25 72 1
2869344 아 지나가다가 건물 2층 3층에서 물 같은거 [1] 루도그담당(223.39) 12:08 36 0
2869343 저능아들이 llm 써봤자 저급한 망상이 강화될 뿐이다. 프갤러(218.154) 12:05 38 0
2869342 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 11:46 26 0
2869341 아직 진행중인 프로젝트 갖고와서 망상과 추측으로 공격하는 러까들 프갤러(218.154) 11:43 26 1
2869340 [대한민국] 기본물가상승 프갤러(121.172) 11:33 23 0
2869339 왜 영피프티는 대화에 여운을 남기는 걸 좋아하냐 아스카영원히사랑해갤로그로 이동합니다. 11:32 43 0
2869338 [대한민국] 생활 물가 상승 프갤러(121.172) 11:31 14 0
2869336 ai한테 다 물어봐도 이해안가고 모르는거투성인데 [3] 뒷통수한방(1.213) 11:18 47 0
2869335 형들 궁금한게 내부망이면 보안상 위험이 있음? [1] 프갤러(220.81) 11:15 41 0
2869334 어셈블리 코드와 메모리 안전성: 더 위험할 수 있다는 지적에 대한 해설 루비갤로그로 이동합니다. 11:11 40 0
2869333 dav1d 파괴 목적 vs. 러스트에 대한 '영혼 판매' 루비갤로그로 이동합니다. 11:11 39 0
2869332 rav1d 측은 메모리 안전성 불가능을 알고 있었을까? 루비갤로그로 이동합니다. 11:10 26 0
2869331 dav1d vs. rav1d: 오픈 소스 코덱 논란의 이면과 '메모리 안 루비갤로그로 이동합니다. 11:09 25 0
2869330 동양인 인구수 존나 많네 벌레같이 많네 [1] 뒷통수한방(1.213) 11:05 38 0
2869329 크로스도메인도 모르는 서버관리자 [2] ㅇㅇ(223.38) 10:19 46 0
뉴스 최예나, 10개월 만에 컴백한다! 29일 'Blooming Wings' 발매 확정  디시트렌드 07.02
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2