c++链式栈用代码怎么实现
时间: 2023-05-20 20:03:22 浏览: 71
链式栈的实现需要定义一个结构体来表示栈中的节点,包括数据域和指向下一个节点的指针域。具体的代码实现如下:
```
typedef struct StackNode {
int data;
struct StackNode *next;
} StackNode;
typedef struct {
StackNode *top;
} LinkedStack;
void initStack(LinkedStack *stack) {
stack->top = NULL;
}
int isEmpty(LinkedStack *stack) {
return stack->top == NULL;
}
void push(LinkedStack *stack, int data) {
StackNode *newNode = (StackNode*)malloc(sizeof(StackNode));
newNode->data = data;
newNode->next = stack->top;
stack->top = newNode;
}
int pop(LinkedStack *stack) {
if (isEmpty(stack)) {
printf("Stack is empty.\n");
return -1;
}
int data = stack->top->data;
StackNode *temp = stack->top;
stack->top = stack->top->next;
free(temp);
return data;
}
int peek(LinkedStack *stack) {
if (isEmpty(stack)) {
printf("Stack is empty.\n");
return -1;
}
return stack->top->data;
}
```
这个代码实现了链式栈的基本操作,包括初始化、判断是否为空、入栈、出栈和查看栈顶元素。