Difference between r1.3 and the current
@@ -20,10 +20,12 @@
 == 내용 ==
'''보충. 스택과 큐 연습'''
* 은행 관리 프로그램
 
== 예제1 ==
= 숙제 =
1. 스택과 큐 복습하기
'''보충. 스택과 큐 연습'''
* 은행 관리 프로그램
~~탈주자들 안오면 잘라버리자~~
 = 코드 === 예제1 ==
 * 큐를 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 순서대로 나오게 작성하시오.
 * 큐를 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서대로 나오게 작성하시오.
== 예제2 ==
 * 스택을 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서의 반대로 나오게 작성하시오.
 = 숙제 =
1. 스택과 큐 복습하기
@@ -36,7 +38,7 @@
 == 최지혁 ==
 
== 박인서 ==
#include <stdio.h>
#include <stdlib.h>
== 박인서 ==
=== 예제 1 ===
=== 예제1 ===
 {{{#include <stdio.h>
#include <stdlib.h>
@@ -93,10 +95,189 @@
 	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<stdio.h>
#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;
}
}}}
=== 스택으로 짠거 ===
 그런거 없음
 == 조종현 ==== 남헌 ==
5.3.1. 예제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);
}
5.3.2. 예제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);
}
5.5.1. 큐로 짬 ¶
(free따윈없다!)
- 그러다 정말로 자유가 없어짐 - 박인서
 
 #include<stdio.h>
#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;
}













