使用结构体实现的代码:
实现栈
#include "pch.h"
#include <iostream>
using namespace std;
typedef struct node {
int value;
struct node* next = 0;
// 构造
}node;
node* creator() {
node* head = new node;
return head;
}
void push(node* head, node* newNode) {
newNode->next = head->next;
head->next = newNode;
}
void push(node* head, int value) {
node* newNode = new node;
newNode->value = value;
newNode->next = head->next;
head->next = newNode;
}
int pop(node* head) {
if (head->next == NULL) // NULL和nullptr
throw "empty";
int result = head->next->value;
head->next = head->next->next;
return result;
}
void show(node* head) {
node* tmp = head;
if (head->next == 0)
{
cout << "empty" << endl;
}
while (tmp->next != 0) {
tmp = tmp->next;
cout << tmp->value << endl;
}
}
int main()
{
node* head = creator();
bool loop = true;
while (loop)
{
cout << "s:显示栈" << endl;
cout << "e:退出" << endl;
cout << "i:入栈" << endl;
cout << "o:出栈" << endl;
char key;
cin >> key;
switch (key)
{
case 's':
show(head);