#define Maxlength 8
typedef struct Stack {
int data[Maxlength];
int top;
}LStack;
int StackInit(LStack *L) {
L->top = -1;
}
int StackIn(LStack* L,int x) {
if(L->top == Maxlength-1) {
return -1;
}
L->data[++L->top] = x;
return 1;
}
int StackOut(LStack* L){
if(L->top == -1){
return -1;
}
return L->data[L->top--];
}
#include <malloc.h>
#include "stdio.h"
typedef struct Linknode {
int data;
struct Linknode* next;
}LNode;
LNode* LinkStackIn(LNode* head,int x) {
if(head == NULL) {
head = (LNode*)malloc(sizeof(LNode));
head->data = x;
head->next = NULL;
return head;
}
LNode* newnode = (LNode*)malloc(sizeof(LNode));
newnode->data = x;
newnode->next = head;
head = newnode;
return head;
}
int LinkStackOut(LNode* head){
if(head == NULL) {
return -1;
}
int result = head->data;
printf("result = %d\n",result);
LNode* p = head;
head = head->next;
free(p);
return head;
}
void LinkStackNull(LNode* head) {
if(head == NULL) {
printf("该栈为空\n");
} else {
printf("该栈不空\n");
}
}
`#include <malloc.h>
#include "stdio.h"
typedef struct DLinkStack {
struct DLinkStack* pre;
int data;
struct DLinkStack* next;
}DLink;
void DStackIn(DLink** S,int x) {
if(*S == NULL) {
*S = (DLink*) malloc(sizeof(DLink));
(*S)->data = x;
(*S)->pre = NULL;
(*S)->next = NULL;
} else {
DLink *newNode = (DLink *) malloc(sizeof(DLink));
newNode->data = x;
newNode->pre = *S;
(*S)->next = newNode;
newNode->next = NULL;
(*S) = newNode;
}
}
int DStackOut(DLink** S) {
if(*S == NULL) {
return -1;
}
DLink *p = *S;
*S = (*S)->pre;
int result = p->data;
free(p);
return result;
}
void main() {
DLink* L = NULL;
DStackIn(&L,1);
DStackIn(&L,2);
DStackIn(&L,3);
printf("%d",DStackOut(&L));
printf("%d",DStackOut(&L));
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现