我正在嘗試將用戶輸入的項目推入C中的堆棧(鏈接列表結構),但我希望能夠以各種不同類型輸入到堆棧中。現在我的籌碼只能採取INT,但我希望它能夠採取在其他類型,如字符,雙,浮法,等C中的標籤類型
我的代碼迄今:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include <ctype.h>
typedef struct stack
{
int val;
struct stack *next;
}node;
node *head = NULL;
void Push (int Item, node **head)
{
node *New;
node *get_node(int);
New = get_node(Item);
New->next = *head;
*head = New;
}
node *get_node(int item)
{
node *temp;
temp = (node*)malloc(sizeof(node));
if (temp == NULL) printf("Memory Cannot Be Allocated");
temp->val = item;
temp->next = NULL;
return (temp);
}
int Sempty (node *temp)
{
if(temp == NULL)
return 1;
else
return 0;
}
int Pop (node **head)
{
int item;
node *temp;
item = (*head)->val;
temp = *head;
*head = (*head)->next;
free(temp);
return(item);
}
void Display (node **head)
{
node *temp;
temp = *head;
if(Sempty(temp)) printf("The stack is empty\n");
else
{
while (temp != NULL)
{
printf("%s", temp->val);
temp = temp->next;
}
}
}
void main()
{
char* in;
int data, item, i;
char length[5];
for(i = 0; i <= sizeof(length); i++)
{
printf("Enter a value: ");
scanf("%c", &in);
strcpy(in, in);
Push(in, &head);
Display(&head);
}
}
只是使用指針作爲「item」類型。那麼你可以存儲幾乎任何東西的指針。一個指針就是一個指針......它將使用你的堆棧來判斷這些指針是什麼。 –