堆栈链接 - 列表C.

时间:2015-07-27 23:20:15

标签: linked-list stack

所以我正在玩链接列表堆栈,我无法弄清楚如何输出char而不是int。令我感到羞耻的是,它只有几个小时才能获得ASCII值(这里是40和97)。我真的可以在这里使用一些光,因为我觉得我缺少一些非常基本的东西。谢谢

#include <stdio.h>
#include <stdlib.h>

typedef struct STACKnode* link;
struct STACKnode { char item; link next; }; 
static link head;

link NEW(char item, link next) 
{ 
link x = malloc(sizeof *x);
x->item = item; 
x->next = next; 
return x; 
}

void STACKinit(int maxN) { head = NULL; }

int STACKempty() { return head == NULL; }

void STACKpush(char item) { head = NEW(item, head); }

char  STACKpop() 
{ 
char item = head->item;  
link t = head->next;
free(head); 
head = t; 
return item; 
}

void STACKprint()
{
  link temp=head; 
while(temp!=NULL)
{
    printf("%i\n",temp->item); 
    temp = temp->next;
}
}

int main(int argc, char *argv[])
{ 
    STACKinit(10);
    STACKpush('a');
    STACKpush('(');
    STACKprint();   
    system("pause");
    return 0;
}   

1 个答案:

答案 0 :(得分:0)

printf("%i\n",temp->item);

你可能想要这个,而不是:

printf("%c\n",temp->item);

%i用于将其输入格式化为十进制整数。 %c将其格式化为角色。