두 갈래 나무를 좌우 아이로 바꾸다
13694 단어 두 갈래 나무
1 # include<stdio.h>
2
3 struct dll{
4 struct Element* head;
5 int size;
6 };
7
8 struct Element{
9 int value;
10 struct Element* p;
11 struct Element* r;
12 };
13
14 typedef struct Element Element;
15 typedef struct dll dll;
16
17 void add(dll* m, int k){ //
18 Element* ptr;
19 ptr = (int *)malloc(10 * sizeof(int));
20 ptr->value = k;
21 ptr->r = NULL;
22 ptr->p = NULL;
23 Element* head = m->head;
24 while (1){
25 int a = ((head->value) > k);
26 int b = (head->p == NULL);
27 int c = (head->r == NULL);
28 if (a == 1)
29 {
30 if (b == 1)
31 {
32 head->p = ptr; break;
33 }
34 else
35 head = head->p;
36 }
37 else
38 {
39 if (c == 1)
40 {
41 head->r = ptr; break;
42 }
43 else
44 head = head->r;
45 }
46 }
47 }
48 void init(dll* m, int k){ //
49 Element* ptr;
50 ptr = (int *)malloc(10 * sizeof(int));
51 ptr->value = k;
52 m->head = ptr;
53 ptr->r = NULL;
54 ptr->p = NULL;
55 m->size = m->size + 1;
56 }
57
58 void ChangLeftRight(dll* t){ //
59 Element* m = t->head;
60 Ct(m);
61 }
62
63 int Ct(Element* t){
64 int tmp=0;
65 if ((t->p != NULL) && (t->r != NULL))
66 {
67 tmp = t->p->value;
68 t->p->value = t->r->value;
69 t->r->value = tmp;
70 }
71 if ((t->p != NULL))
72 Ct(t->p);
73 if ((t->r != NULL))
74 Ct(t->r);
75
76 if (t == NULL)
77 return 1;
78 }
79
80 void BlE(Element* k){
81 printf("%d ", k->value);
82 if (k->p != NULL)
83 BlE(k->p);
84 if (k->r != NULL)
85 BlE(k->r);
86 }
87
88 void Bl(dll* t){ //
89
90 Element* head;
91 head = (int *)malloc(10 * sizeof(int));
92 head = t->head;
93 BlE(head);
94
95 }
96
97 void main(){
98 dll* t;
99 t = (int *)malloc(20 * sizeof(int));
100 t->size = 0;
101 t->head = NULL;
102 init(t,30);
103 add(t, 6);
104 add(t, 2);
105 add(t, 5);
106 add(t, 56);
107 add(t, 36);
108 add(t, 9);
109 add(t, 98);
110 Bl(t);
111 ChangLeftRight(t);
112 printf("
");
113 Bl(t);
114 system("pause");
115 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 데이터 구조 2차원 트리의 실현 코드일.두 갈래 트리 인터페이스 2 노드 클래스 3. 두 갈래 나무 구현 이 글을 통해 여러분께 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.