我终于构建了我的堆栈链表。它工作正常。 但我想知道是否有比我更容易和更短的方式。
我觉得......我不是实现堆栈链表的最好方法。
最好的方式:轻松简短。
我的整个代码在下面..
#include <stdio.h>
#include <stdlib.h>
typedef int element;
typedef struct node{
element data;
struct node* next;
}node;
node* head = NULL;
void push(element data){
node* temp = (node*)malloc(sizeof(node));
if(temp==NULL)
printf("out of memory");
else{
temp->data = data;
temp->next = head;
printf("push(%d)\n", temp->data);
head = temp;
}
}
void pop(){
node* temp;
if(head==NULL) return;
temp = head;
head = temp->next;
free(temp);
}
void printStack(){
node* temp = head;
while(temp!=NULL){
printf("%d\n", temp->data);
temp = temp->next;
}
}
void is_Empty(){
if(head==NULL){
printf("EMPTY\n");
}
else{
printf("NOT EMPTY\n");
}
}
void main() {
push(10);
push(20);
push(30);
push(40);
printStack();
is_Empty();
}
答案 0 :(得分:2)
看起来不错,但通常在弹出时,您想要返回删除的元素。此外,我将有一个释放堆栈的函数,这样如果你想创建一个抽象级别,人们仍然可以正确地管理它们的内存。