More actions
imported>박인서 No edit summary |
imported>박인서 No edit summary |
||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
'' | ''이게 쉬운거...'' | ||
__TOC__ | __TOC__ | ||
| Line 25: | Line 25: | ||
| 출석 | | 출석 | ||
|} | |} | ||
전원 출석!! | 전원 출석!!+회식!! | ||
= 수업 = | = 수업 = | ||
| Line 168: | Line 168: | ||
== 이원준 == | == 이원준 == | ||
#include<stdio.h> | |||
typedef struct _node{ | |||
struct _node *Rnode; | |||
struct _node *Lnode; | |||
int var; | |||
} node; | |||
typedef struct _PQ{ | |||
node *one; | |||
} PQ; | |||
void insert(PQ *head, int input){ | |||
node *temp = (node*)malloc(sizeof(node)); | |||
temp->Lnode = NULL; | |||
temp->Rnode = NULL; | |||
temp->var = input; | |||
if (head->one == NULL){ | |||
head->one = temp; | |||
return; | |||
} | |||
node *dir = head->one; | |||
while (1){ | |||
if (dir->var < input){ | |||
if (dir->Rnode == NULL){ | |||
dir->Rnode = temp; | |||
break; | |||
} | |||
else{ | |||
dir = dir->Rnode; | |||
} | |||
} | |||
else{ | |||
if (dir->Lnode == NULL){ | |||
dir->Lnode = temp; | |||
break; | |||
} | |||
else{ | |||
dir = dir->Lnode; | |||
} | |||
} | |||
} | |||
} | |||
void del(PQ *head, int input){ | |||
node *temp1; | |||
node *temp2; | |||
if (head->one == NULL){ | |||
printf("없어 없다고!빼에에엑\n"); | |||
return; | |||
} | |||
node *dir; | |||
if (head->one->var == input){ | |||
temp1 = head->one->Lnode; | |||
temp2 = head->one->Rnode; | |||
printf("있엉: %d\n", head->one->var); | |||
head->one = temp1; | |||
dir = head->one; | |||
if (temp1 == NULL){ | |||
head->one = temp2; | |||
return; | |||
} | |||
else{ | |||
while (dir->Rnode != NULL){ | |||
dir = dir->Rnode; | |||
} | |||
dir->Rnode = temp2; | |||
} | |||
return; | |||
} | |||
dir = head->one; | |||
while (1){ | |||
if (dir->var < input){ | |||
if (dir->Rnode == NULL){ | |||
printf("없어\n"); | |||
return; | |||
} | |||
else{ | |||
if (dir->Rnode->var == input){ | |||
printf("있엉: %d\n", input); | |||
temp1 = dir->Rnode->Rnode; | |||
temp2 = dir->Rnode->Lnode; | |||
dir->Rnode = temp1; | |||
if (temp1 == NULL){ | |||
dir->Rnode = temp2; | |||
return; | |||
} | |||
while (dir->Rnode != NULL){ | |||
dir = dir->Rnode; | |||
} | |||
dir->Rnode = temp2; | |||
break; | |||
return; | |||
} | |||
dir = dir->Rnode; | |||
} | |||
} | |||
else{ | |||
if (dir->Lnode == NULL){ | |||
printf("없어\n"); | |||
return; | |||
} | |||
else{ | |||
if (dir->Lnode->var == input){ | |||
printf("있엉: %d\n", input); | |||
if (dir->Lnode->var == input){ | |||
temp1 = dir->Lnode->Rnode; | |||
temp2 = dir->Lnode->Lnode; | |||
dir->Lnode = temp1; | |||
if (temp1 == NULL){ | |||
dir->Lnode = temp2; | |||
return; | |||
} | |||
while (dir->Rnode != NULL){ | |||
dir = dir->Rnode; | |||
} | |||
dir->Rnode = temp2; | |||
break; | |||
return; | |||
} | |||
dir = dir->Rnode; | |||
} | |||
dir = dir->Lnode; | |||
} | |||
} | |||
} | |||
} | |||
void main(){ | |||
PQ *PQhead = (PQ *)malloc(sizeof(PQ)); | |||
PQhead->one = NULL; | |||
int i; | |||
insert(PQhead, 10); | |||
insert(PQhead, 5); | |||
insert(PQhead, 20); | |||
insert(PQhead, 100); | |||
insert(PQhead, 30); | |||
insert(PQhead, 1); | |||
del(PQhead, 10); | |||
del(PQhead, 10); | |||
del(PQhead, 20); | |||
del(PQhead, 5); | |||
del(PQhead, 100); | |||
del(PQhead, 30); | |||
del(PQhead, 1); | |||
del(PQhead, 10); | |||
del(PQhead, 5); | |||
del(PQhead, 20); | |||
del(PQhead, 100); | |||
del(PQhead, 30); | |||
del(PQhead, 1); | |||
} | |||
== 남헌 == | == 남헌 == | ||
Latest revision as of 18:21, 10 November 2015
이게 쉬운거...
참여자 명단
| 함장 | 장용운 | 11학번 | 출석 |
| 선원 | 천준현 | 15학번 | 출석 |
| 박인서 | 출석 | ||
| 이원준 | 출석 | ||
| 남헌 | 출석 |
전원 출석!!+회식!!
수업
진행
- 장소 : 6층 학회실
- 시간 : 15시 ~ 17시
내용
수심 4000m. 트리2
- BST(이진 탐색 트리)
코드
예제1
숙제
- 고통받기
숙제 제출
천준현
박인서
#include <stdio.h>
#include <stdlib.h>
struct node{
int val;
struct node * lnext;
struct node * rnext;
};
void insert(struct node * target, int newval)
{
struct node * newnode = (struct node *)malloc(sizeof(struct node));
int lr=0;
newnode->lnext=NULL,newnode->rnext=NULL,newnode->val=newval;
while(1)
{
if(target->val>=newval)
{
if(target->lnext==NULL)
{
lr=-1;
break;
}
target=target->lnext;
}
else
{
if(target->rnext==NULL)
{
lr=1;
break;
}
target=target->rnext;
}
}
if(lr==-1) target->lnext=newnode;
else target->rnext=newnode;
}
int del(struct node * target, int find)
{
struct node * tlnode;
struct node *trnode;
struct node * ta;
while(1)
{
if(target->val>find)
{
if(target->lnext==NULL) return 0;
target=target->lnext;
}
else if(target->val<find)
{
if(target->rnext==NULL) return 0;
target=target->rnext;
}
else if(target->val==find) break;
else return 0;
}
tlnode=target->lnext;
trnode=target->rnext;
ta=target;
if(target->rnext==NULL)
{
if(target->lnext==NULL)
{
free(ta);
return 1;
}
else target=tlnode;
}
else
{
target=trnode;
while(target->lnext!=NULL)
target=target->lnext;
tlnode=target;
}
ta->lnext=NULL,ta->rnext=NULL;
free(ta);
return 1;
}
int main()
{
struct node * head=(struct node *)malloc(sizeof(struct node));
int ind,t;
char ch[10],a;
printf("초기값 설정 ㄱㄱ : ");
scanf("%d",&ind);
head->val=ind;
head->lnext=NULL;
head->rnext=NULL;
while(1)
{
printf("\ninsert(i)나 delete(d)나 exit(e)를 입력하세요 : ");
scanf("%s",ch);
a=ch[0];
if(a=='I' || a=='i')
{
printf("머 집어넣을꺼임? : ");
scanf("%d",&ind);
insert(head,ind);
}
else if(a=='D' || a=='d')
{
printf("머 뺄꺼임? : ");
scanf("%d",&ind);
if(del(head,ind)) printf("잘 빼짐\n");
else printf("값 없어\n");
}
else if(a=='E' || a=='e') break;
else printf("제대로 입력하라고\n");
}
return 0;
}
이원준
#include<stdio.h>
typedef struct _node{
struct _node *Rnode;
struct _node *Lnode;
int var;
} node;
typedef struct _PQ{
node *one;
} PQ;
void insert(PQ *head, int input){
node *temp = (node*)malloc(sizeof(node));
temp->Lnode = NULL;
temp->Rnode = NULL;
temp->var = input;
if (head->one == NULL){
head->one = temp;
return;
}
node *dir = head->one;
while (1){
if (dir->var < input){
if (dir->Rnode == NULL){
dir->Rnode = temp;
break;
}
else{
dir = dir->Rnode;
}
}
else{
if (dir->Lnode == NULL){
dir->Lnode = temp;
break;
}
else{
dir = dir->Lnode;
}
}
}
}
void del(PQ *head, int input){
node *temp1;
node *temp2;
if (head->one == NULL){
printf("없어 없다고!빼에에엑\n");
return;
}
node *dir;
if (head->one->var == input){
temp1 = head->one->Lnode;
temp2 = head->one->Rnode;
printf("있엉: %d\n", head->one->var);
head->one = temp1;
dir = head->one;
if (temp1 == NULL){
head->one = temp2;
return;
}
else{
while (dir->Rnode != NULL){
dir = dir->Rnode;
}
dir->Rnode = temp2;
}
return;
}
dir = head->one;
while (1){
if (dir->var < input){
if (dir->Rnode == NULL){
printf("없어\n");
return;
}
else{
if (dir->Rnode->var == input){
printf("있엉: %d\n", input);
temp1 = dir->Rnode->Rnode;
temp2 = dir->Rnode->Lnode;
dir->Rnode = temp1;
if (temp1 == NULL){
dir->Rnode = temp2;
return;
}
while (dir->Rnode != NULL){
dir = dir->Rnode;
}
dir->Rnode = temp2;
break;
return;
}
dir = dir->Rnode;
}
}
else{
if (dir->Lnode == NULL){
printf("없어\n");
return;
}
else{
if (dir->Lnode->var == input){
printf("있엉: %d\n", input);
if (dir->Lnode->var == input){
temp1 = dir->Lnode->Rnode;
temp2 = dir->Lnode->Lnode;
dir->Lnode = temp1;
if (temp1 == NULL){
dir->Lnode = temp2;
return;
}
while (dir->Rnode != NULL){
dir = dir->Rnode;
}
dir->Rnode = temp2;
break;
return;
}
dir = dir->Rnode;
}
dir = dir->Lnode;
}
}
}
}
void main(){
PQ *PQhead = (PQ *)malloc(sizeof(PQ));
PQhead->one = NULL;
int i;
insert(PQhead, 10);
insert(PQhead, 5);
insert(PQhead, 20);
insert(PQhead, 100);
insert(PQhead, 30);
insert(PQhead, 1);
del(PQhead, 10);
del(PQhead, 10);
del(PQhead, 20);
del(PQhead, 5);
del(PQhead, 100);
del(PQhead, 30);
del(PQhead, 1);
del(PQhead, 10);
del(PQhead, 5);
del(PQhead, 20);
del(PQhead, 100);
del(PQhead, 30);
del(PQhead, 1);
}