연결리스트 스택 도와주세요
우수리
질문 제목 : 전화번호부 기능과 재다이얼 기능을 넣어서 연결리스트 스택 구현이름과 전화번호 두개의 변수를 받아 pop함수와 del함수를 만들어야 하는데 모르겠어요ㅠㅠ 일단 제가 짠 소스코드를 보여드릴게요질문 내용 :
#includestdio.h
#includestdlib.h
#includestring.h
#includemalloc.h
//이름 번호 구조체
typedef struct stack{
char name[30];
int phone;
struct stack* link;
}stack;
stack *top=null;
//삽입
int push(char a[],int b)
{
stack *temp=(stack*)malloc(sizeof(stack));
strcpy(temp-name,a);
temp-phone=b;
temp-link=top;
top=temp;
return 0;
}
//삭제
//출력합수
int print()
{
stack *t=top;
if(t==null){
printf(\n스택이 비어있습니다.\n);
}
else{
while(t){
printf( {이름:[%s], 핸드폰번호[%d]} ,t-name,t-phone);
t=t-link;
}
}
return 0;
}
int main()
{
int i,y;
char x[20];
while(1){
printf(원하시는 번호를 누르시오.\n);
printf(1.push 2.pop 3.print 4.exit \n);
scanf(%d,&i);
switch(i){
case 1:
printf(\n전화한 사람의 이름을 입력하세요 ~ );
scanf(%s,x);
printf(\n전화한 사람 전화번호는 ? );
scanf(%d,&y);
push(x,y);
break;
case 2:
break;
case 3:
print();
break;
case 4:
exit(1);
break;
}
}
return 0;
}
-
가림
비버
-
물맑
Pop은 제일 나중에 넣은걸 출력하시면 되겠고.. 다만 스택의 pop처럼 넣었던걸 아예 삭제해야하는지는 모르겠고요. Del은 free(리스트) 를 쓰셔서 메모리해제해주시면 돼요. 다만 전체를 삭제하느냐 검색해서 그것만 삭제하느냐에 따라 용법이 좀 달라지지만요
-
바라
소스 짠거보니 조금만 더 노력하시면 될것같은데...