
リストに要素を挿入していって、それを後に挿入した要素から順に出力する
関数を作る（宣言している関数の形は変えないでください）問題なんですが
自分のかいたようなコードだとd→c→b→aのように出力したいんですがわかりません。
お願いします。以下コード
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct data{
  char key;
  struct data *next;
};

void print_stack_list(struct data *top);
  

int main()
{
 
  struct data *top, *cur;
 
 

 top = (struct data*)malloc(sizeof(struct data));
  if(top == NULL){printf("メモりが確保できませんでした。\n"); return 1;     }
  cur = top;

 top->key = 'a';
  top->next = (struct data*)malloc(sizeof(struct data));
if(top->next == NULL){printf("メモりが確保できませんでした。\n"); return 1;        }
 top = top->next;

  top->key = 'b';
  top->next = (struct data*)malloc(sizeof(struct data));
  if(top->next == NULL){printf("メモりが確保できませんでした。\n"); 
    return 1;     }
  top = top->next;
 
  top->key = 'c';
  top->next = (struct data*)malloc(sizeof(struct data));
   if(top->next == NULL){printf("メモりが確保できませんでした。\n"); 
    return 1;     }
   top = top->next;

   top->key = 'd';
   top->next = NULL;


 
 print_stack_list(top);




  return 0;
 
}

void print_stack_list(struct data *top)
{
  
  while(top = )
    {

      printf("%c\n",top->key);
  
      top = top->next;
}
 





}

