Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

자료구족발보쌈/0722: Difference between revisions

From ZeroWiki
imported>박인서
No edit summary
 
imported>박인서
No edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
   ''나오는 사람이 정해졌습니다.''
   ''탈주자로 인하여 잠수함이 못내려가요. ~~더 무거워져야 될텐데..~~''
__TOC__
__TOC__


Line 43: Line 43:
'''보충. 스택과 큐 연습'''
'''보충. 스택과 큐 연습'''
* 은행 관리 프로그램
* 은행 관리 프로그램
 
~~탈주자들 안오면 잘라버리자~~
= 코드 =
= 코드 =
== 예제1 ==
== 예제1 ==
* 큐를 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 순서대로 나오게 작성하시오.
* 큐를 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서대로 나오게 작성하시오.
== 예제2 ==
* 스택을 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서의 반대로 나오게 작성하시오.


= 숙제 =
= 숙제 =
Line 59: Line 61:


== 박인서 ==
== 박인서 ==
 
=== 예제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;
}
=== 스택으로 짠거 ===
그런거 없음
== 조종현 ==
== 조종현 ==



Latest revision as of 16:37, 22 July 2015

  탈주자로 인하여 잠수함이 못내려가요. ~~더 무거워져야 될텐데..~~

참여자 명단

함장 장용운 11학번 도스마스
선원 천준현 15학번 행방불명
최지혁 출석
박인서 도스마스
이정재 고향
이원준 출석
조종현 장염
남헌 도스마스

수업

진행

  1. 장소 : 6층 학회실
  2. 시간 : 14시 ~ 17시

내용

보충. 스택과 큐 연습

  • 은행 관리 프로그램

~~탈주자들 안오면 잘라버리자~~

코드

예제1

  • 큐를 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서대로 나오게 작성하시오.

예제2

  • 스택을 이용하여 은행에 저장된 사람이름, 계좌번호, 잔액을 입력받은 순서의 반대로 나오게 작성하시오.

숙제

  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);
}

예제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 = &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;
}

스택으로 짠거

그런거 없음

조종현

남헌



활동지도/2015 자료구족발보쌈