''탈주자로 인하여 잠수함이 못내려가요. ~~더 무거워져야 될텐데..~~'' [[TableOfContents]] = 참여자 명단 = || 함장 || 장용운 || 11학번 || 도스마스 || ||<|7> 선원 || 천준현 ||<|7> 15학번 || 행방불명 || || 최지혁 || 출석 || || 박인서 || 도스마스 || || 이정재 || 고향 || || 이원준 || 출석 || || 조종현 || 장염 || || 남헌 || 도스마스 || = 수업 = == 진행 == 1. 장소 : 6층 학회실 2. 시간 : 14시 ~ 17시 == 내용 == '''보충. 스택과 큐 연습''' * 은행 관리 프로그램 ~~탈주자들 안오면 잘라버리자~~ = 코드 = == 예제1 == * 큐를 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서대로 나오게 작성하시오. == 예제2 == * 스택을 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서의 반대로 나오게 작성하시오. = 숙제 = 1. 스택과 큐 복습하기 ---- = 숙제 제출 = == 천준현 == == 최지혁 == == 박인서 == === 예제1 === {{{ #include #include typedef struct bank{ int money; int num; char * name; }bank; typedef struct node{ bank val; struct node* next; }node; void push(node *); void pop(node *); int main() { node head; int i; head.next=NULL; for(i=0;i<10;i++) push(&head); for(i=0;i<10;i++) pop(&head); return 0; } void push(node * target) { node * newnode=(node *)malloc(sizeof(node)); node * temp=target->next; int tmoney,tnum; char * tname=(char *)malloc(sizeof(char)*100); scanf("%s %d %d",tname,&tnum,&tmoney); newnode->val.name=tname; newnode->val.num=tnum; newnode->val.money=tmoney; target->next=newnode; newnode->next=temp; } void pop(node * target) { node * kill=(node *)malloc(sizeof(node)); if(target==NULL) abort(); if(target->next->next==NULL) { printf("%s %d %d\n",target->next->val.name,target->next->val.num,target->next->val.money); kill=target->next; target->next=NULL; free(kill); } else pop(target->next); } }}} === 예제2 === {{{ #include #include typedef struct bank{ int money; int num; char * name; }bank; typedef struct node{ bank val; struct node* next; }node; void push(node *); void pop(node *); int main() { node head; int i; head.next=NULL; for(i=0;i<10;i++) push(&head); for(i=0;i<10;i++) pop(&head); return 0; } void push(node * target) { node * newnode=(node *)malloc(sizeof(node)); node * temp=target->next; int tmoney,tnum; char * tname=(char *)malloc(sizeof(char)*100); scanf("%s %d %d",tname,&tnum,&tmoney); newnode->val.name=tname; newnode->val.num=tnum; newnode->val.money=tmoney; target->next=newnode; newnode->next=temp; } void pop(node * target) { node * kill = target->next; printf("%s %d %d\n",target->next->val.name,target->next->val.num,target->next->val.money); if(target->next==NULL) abort(); target->next=target->next->next; free(kill); } }}} == 이정재 == == 이원준 == === 큐로 짬 === (free따윈없다!) * 그러다 정말로 자유가 없어짐 - [박인서] {{{ #include #include typedef struct node{ char v; struct node* next; }node; typedef struct account{ node namehd; node anumhd; struct account* next; }account; void push(node*, char*); account* acpush(account* hd); void freeAll(node*); int l = 10; //고객수 void main(){ account ac = { NULL }; account* tmp = ∾ account* pt = (account*)malloc(sizeof(account)); char a; pt = ∾ for (int i = 0; i < l; i++) { printf("이름입력하3\n"); for (int j = 0; 1; j++){ a = fgetc(stdin); if (a == '\n') break; push(&(pt->namehd), &a); } printf("번호입력하3\n"); for (int j = 0; 1; j++){ a = fgetc(stdin); if (a == '\n') break; push(&(pt->anumhd), &a); } printf("\n"); pt = acpush(pt); pt->anumhd.next = NULL; pt->namehd.next = NULL; pt->next = NULL; } pt = ∾ printf("----출력----\n"); for (int i = 0; i < l; i++){ printf("이름\n"); freeAll(&(pt->namehd)); printf("\n"); printf("계좌\n"); freeAll(&(pt->anumhd)); printf("\n"); printf("\n"); pt = pt->next; } } void push(node* hd, char* val){ node* tmp = (node*)malloc(sizeof(node)); node* pt = (node*)malloc(sizeof(node)); pt = hd; while (pt->next != NULL) { pt = pt->next; } tmp->next = NULL; tmp->v = *val; pt->next = tmp; pt = pt->next; } account* acpush(account* ac){ account* tmp = (account*)malloc(sizeof(account)); tmp->next = NULL; ac->next = tmp; return ac->next; } void freeAll(node* hd){ node* ntp; node* tmp = hd; while (hd->next != NULL){ ntp = hd->next; printf("%c", ntp->v); ntp = ntp->next; hd->next = ntp; } hd = tmp; } }}} === 스택으로 짠거 === 그런거 없음 == 조종현 == == 남헌 == ---- ----------------------------------- [활동지도/2015] [자료구족발보쌈]