''인간의 실수는 끝이 없고 같은 고통을 반복한다.'' [[TableOfContents]] = 참여자 명단 = || 함장 || 장용운 || 11학번 || 출석 || ||<|7> 선원 || 천준현 ||<|7> 15학번 || 중동 || || 최지혁 || 출석 || || 박인서 || 출석 || || ~~이정재~~ || ~~탈주~~ || || 이원준 || 지각 || || 조종현 || 공강 || || 남헌 || 출석 || = 수업 = == 진행 == 1. 장소 : 6층 학회실 2. 시간 : 15시 ~ 17시 == 내용 == '''수심 Nm. TITLE''' * = 코드 = == 예제1 == = 숙제 = 1. 복습하기 2. 복습하기 3. 복습하기 ---- = 숙제 제출 = == 천준현 == == 최지혁 == == 박인서 == === index로 값찾기 === {{{ //고통받기를 시작합니다. #include #include typedef struct node{ int val; struct node* lnext; struct node* rnext; }node; void push(node *, int); int pop(node *); node * find(node *, int); long cnt=1; int main() { int a; char ch[5]; node head; node * findnode; printf("초기값 설정 ㄱㄱ\n"); scanf("%d",&head.val); head.lnext=NULL; head.rnext=NULL; for(;;) { printf("push나 pop이나 find나 exit 입력(push/pop/find/exit)\n"); scanf("%s",ch); if(ch[0]=='e' && ch[1]=='x' && ch[2]=='i' && ch[3]=='t') break; else if(ch[0]=='f' && ch[1]=='i' && ch[2]=='n' && ch[3]=='d') { printf("인덱스 입력 ㄱㄱ : "); scanf("%d",&a); if(a>=cnt) { printf("범위를 넘어섬 ㅂㅅ아\n"); } else { findnode=find(&head,a); printf("니가 찾는거 : %d\n",findnode->val); } } else if(ch[0]=='p' && ch[1]=='u' && ch[2]=='s' && ch[3]=='h') { printf("넣을 숫자 입력 ㄱㄱ(자연수만) : "); scanf("%d",&a); push(&head,a); } else if(ch[0]=='p' && ch[1]=='o' && ch[2]=='p') { a=pop(&head); if(a==-1) printf("숫자 없음 ㅂㅅ아\n"); else printf("%d가 있었다 ㅂㅅ아\n",a); } else { printf("push나 pop이나 exit만 입력하라고...\n"); } } return 0; } void push(node * target, int newval) { node * newnode=(node *)malloc(sizeof(node)); int a=1,c,i; int * b; cnt++; for(c=1;;c++) { if(a<=cnt && cnt<2*a) break; a*=2; } a=cnt; b=(int *)malloc((sizeof(int))*c); for(i=0;i=1;i--) { if(b[i]==0) target=target->lnext; else target=target->rnext; } newnode->val=newval; newnode->lnext=NULL; newnode->rnext=NULL; if(b[0]==0) target->lnext=newnode; else target->rnext=newnode; free(b); } int pop(node * target) { int a=1,c,i; int * b; if(cnt==0) return -1; if(cnt==1) { cnt--; return target->val; } for(c=1;;c++) { if(a<=cnt && cnt<2*a) break; a*=2; } a=cnt; b=(int *)malloc((sizeof(int))*c); for(i=0;i=1;i--) { if(b[i]==0) target=target->lnext; else target=target->rnext; } if(b[0]==0) { a=target->lnext->val; free(target->lnext); target->lnext=NULL; } else { a=target->rnext->val; free(target->rnext); target->rnext=NULL; } free(b); cnt--; return a; } node * find(node * root,int index) { int a=1,c,i; int * b; if(index==0) { return root; } index++; for(c=1;;c++) { if(a<=index && index<2*a) break; a*=2; } a=index; b=(int *)malloc((sizeof(int))*c); for(i=0;i=0;i--) { if(b[i]==0) root=root->lnext; else root=root->rnext; } return root; } }}} == ~~이정재~~ == == 이원준 == == 조종현 == == 남헌 == ---- ----------------------------------- [활동지도/2015] [자료구족발보쌈]