메뉴 건너뛰기


씨언어 잘하시는 회원님 도움을.....

인자요산2005.05.09 12:53조회 수 150댓글 0

    • 글자 크기



스텍과 큐는 top, rear, front 변수의 초기값을 -1로 줘야 합니다.
씨언어에서의 배열은 첨자가 0부터 시작하기 때문에 반드시 모든 변수를 -1로 초기화 해줘야 결과값이 바르게 나옵니다.



>#include<stdio.h>                
>
>int top;                
>int stack[3];
>int Queue[3];
>int data;
>int head=0,tail=0;                        
>
>push()                        
>{
>        stack[++top] = data;        
>        return 0;
>}
>
>pop()                        
>{
>        stack[top--] = 0;                
>        return 0;
>}
>
>stackwrite()                
>{
>        int i;
>        printf("Stack : ");
>        for(i=top;i>0;i--)                        
>                printf("%3d",stack[i]);
>        return 0;
>}
>
>Q_push()                
>{
>        Queue[tail++] = data;                
>        return 0;
>}
>
>Q_pop()                        
>{
>        Queue[head++] = 0;                        
>        return 0;
>}
>
>Q_write()                        
>{
>        int i;
>        printf("\nQueue : ");                
>        for (i=head;i<tail;i++)                        
>                printf("%3d",Queue[i]);
>        return 0;
>}
>
>
>void main()                        
>{
>        int ch;
>        printf ("**************************************\n");
>        printf ("1. add                2. delete        3.exit\n");
>        printf ("**************************************\n");
>        for(;;)
>        {
>                printf("\n\nChoose : ");
>                scanf ("%d",&ch);
>                printf("\n");
>                if (ch==1)
>                {
>                        if (top > 2)
>                        {
>                                printf("overflow ...\n");
>                                break;
>                        }
>                        printf("Input : ");
>                        scanf("%3d",&data);
>                        push();
>                        Q_push();
>                        stackwrite();
>                        Q_write();
>                }
>                if (ch==2)
>                {
>                        if (top == 0)
>                        {
>                                printf("underflow ...\n");
>                                break;
>                        }
>                        pop();
>                        Q_pop();
>                        stackwrite();
>                        Q_write();
>                }
>                if (ch==3)
>                {
>                        break;
>                }                        
>                
>        }
>}
>
>
>


    • 글자 크기

댓글 달기

번호 제목 글쓴이 날짜 조회 수
공지 드디어 복구했습니다. 와일드바이크 심폐소생의 변!40 Bikeholic 2019.10.27 3108
188103 raydream 2004.06.07 389
188102 treky 2004.06.07 362
188101 ........ 2000.11.09 175
188100 ........ 2001.05.02 188
188099 ........ 2001.05.03 216
188098 silra0820 2005.08.18 1474
188097 ........ 2000.01.19 210
188096 ........ 2001.05.15 264
188095 ........ 2000.08.29 271
188094 treky 2004.06.08 264
188093 ........ 2001.04.30 236
188092 ........ 2001.05.01 232
188091 12 silra0820 2006.02.20 1565
188090 ........ 2001.05.01 193
188089 ........ 2001.03.13 226
188088 물리 님.. 이 시간까지 안 주무시고 .. 물리 쪼 2003.08.09 215
188087 물리 님.. 이 시간까지 안 주무시고 .. 아이 스 2003.08.09 245
188086 글쎄요........ 다리 굵은 2004.03.12 540
188085 분..........홍..........신 다리 굵은 2005.07.04 712
188084 mtb, 당신의 실력을 공인 받으세요.4 che777marin 2006.05.31 1505
첨부 (0)
위로