STEP 4.2C リストを用いてキュー (演習問題2.7)

<問題> STEP3.2のリストを用いて、スタック操作を定義しなさい。


<実行例> (4.2Aと同じ実行です)
 
a is enqueued
b is enqueued
c is enqueued

 List(Queue)
a
b
c

a is dequeued
b is dequeued

 List(Queue)
c

d is enqueued
c is dequeued
e is enqueued

 List(Queue)
d
e

(STEP3.2のlist.oを再利用できるので、list.cを再コンパイルしなくてもよい)

gcc -c list.c
gcc -c 0401.c
gcc -o 0401 list.o 0401.o



解答例
以下、0402c.c

#include "list.h"

void enqueue(List *L, char x);
char dequeue(List *L);

/* エンキューとデキューを、定義 */
void enqueue(List *L, char x) {
  


}

char dequeue(List *L) {
   char deq;



   return(deq);
}


int main(void){
   char x;
   List *L;
   L=create();
   enqueue(L,'a');
   printf("a is enqueued \n");
   enqueue(L,'b');
   printf("b is enqueued \n");
   enqueue(L,'c');
   printf("c is enqueued \n");

   printf("\n List(Queue)");
   printlist(L);
   printf("\n");

   x=dequeue(L);
   printf("%c is dequeued \n", x);
   x=dequeue(L);
   printf("%c is dequeued \n", x);

   printf("\n List(Queue)");
   printlist(L);
   printf("\n");

   enqueue(L,'d');
   printf("d is enqueued \n");
   x=dequeue(L);
   printf("%c is dequeued \n", x);
   enqueue(L,'e');
   printf("e is enqueued \n");

   printf("\n List(Queue)");
   printlist(L);
   printf("\n");

/*
   while(!empty(L)){
      printf("%c",access(L,1));
      delete(L,1);
   }
   printf("\n");
*/

   FreeData(L);
   return(0);
}