More actions
imported>박인서 No edit summary |
imported>박인서 No edit summary |
||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 43: | Line 43: | ||
'''보충. 스택과 큐 연습''' | '''보충. 스택과 큐 연습''' | ||
* 은행 관리 프로그램 | * 은행 관리 프로그램 | ||
~~탈주자들 안오면 잘라버리자~~ | |||
= 코드 = | = 코드 = | ||
== 예제1 == | == 예제1 == | ||
* 큐를 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 순서대로 나오게 작성하시오. | * 큐를 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서대로 나오게 작성하시오. | ||
== 예제2 == | |||
* 스택을 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서의 반대로 나오게 작성하시오. | |||
= 숙제 = | = 숙제 = | ||
| Line 59: | Line 61: | ||
== 박인서 == | == 박인서 == | ||
=== | === 예제1 === | ||
#include <stdio.h> | #include <stdio.h> | ||
#include <stdlib.h> | #include <stdlib.h> | ||
| Line 113: | Line 115: | ||
} | } | ||
else pop(target->next); | else pop(target->next); | ||
} | |||
=== 예제2 === | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
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); | |||
} | } | ||
== 이정재 == | == 이정재 == | ||
| Line 118: | Line 170: | ||
== 이원준 == | == 이원준 == | ||
=== 큐로 짬 === | |||
(free따윈없다!) | |||
* 그러다 정말로 자유가 없어짐 - [[박인서]] | |||
#include<stdlib.h> | |||
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 = &ac; | |||
account* pt = (account*)malloc(sizeof(account)); | |||
char a; | |||
pt = &ac; | |||
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 = &ac; | |||
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; | |||
} | |||
=== 스택으로 짠거 === | |||
그런거 없음 | |||
== 조종현 == | == 조종현 == | ||
Latest revision as of 16:37, 22 July 2015
탈주자로 인하여 잠수함이 못내려가요. ~~더 무거워져야 될텐데..~~
참여자 명단
| 함장 | 장용운 | 11학번 | 도스마스 |
| 선원 | 천준현 | 15학번 | 행방불명 |
| 최지혁 | 출석 | ||
| 박인서 | 도스마스 | ||
| 이정재 | 고향 | ||
| 이원준 | 출석 | ||
| 조종현 | 장염 | ||
| 남헌 | 도스마스 |
수업
진행
- 장소 : 6층 학회실
- 시간 : 14시 ~ 17시
내용
보충. 스택과 큐 연습
- 은행 관리 프로그램
~~탈주자들 안오면 잘라버리자~~
코드
예제1
- 큐를 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서대로 나오게 작성하시오.
예제2
- 스택을 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서의 반대로 나오게 작성하시오.
숙제
- 스택과 큐 복습하기
숙제 제출
천준현
최지혁
박인서
예제1
#include <stdio.h>
#include <stdlib.h>
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 <stdio.h>
#include <stdlib.h>
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<stdlib.h>
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;
}
스택으로 짠거
그런거 없음