Difference between r1.3 and the current
@@ -8,7 +8,7 @@
|| 박인서 || 출석 ||
|| 이원준 || 출석 ||
|| 남헌 || 출석 ||
= 수업 =
== 진행 ==
|| 이원준 || 출석 ||
|| 남헌 || 출석 ||
전원 출석!!
전원 출석!!+회식!!
= 수업 =
== 진행 ==
5.2. 박인서 ¶
#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; }
5.3. 이원준 ¶
#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); }