#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
typedef struct node{
int data;
struct node*next;
}node;
node*insert(node*head,int da)//链表头部插入数据
{
node*p=NULL;
p=(node*)malloc(sizeof(node));//注意添加节点的话,要开辟内存
p->data=da;
p->next=head->next;
head->next=p;
return head;
}
node*del(node*head)
{
head->next=head->next->next;
return head;
}
node*push(node*head,int num)
{
head=insert(head,num);
return head;
}
node*pop(node*head)
{
head=del(head);
return head;
}
void*print(node*head)
{
node*p=NULL;
p=head->next;
while(p)
{
cout<<p->data<<" ";
p=p->next;
}
}
int main()
{
node*stack=(node*)malloc(sizeof(node));
stack->next=NULL;
for(int i=1;i<=10;i++)
{
push(stack,i);
print(stack);cout<<endl;
}
for(int j=1;j<=10;j++)
{
pop(stack);
print(stack);cout<<endl;
}
system("pause");
return 0;
}
栈的基本操作(c链表实现)
最新推荐文章于 2024-11-12 21:57:18 发布
本文介绍了一个使用链表来实现栈的数据结构案例。通过定义结构体并实现插入、删除等核心函数,展示了如何进行链表的基本操作及如何用链表模拟栈的行为。文中还提供了完整的C++代码示例,包括向栈中压入元素(push)和从栈顶弹出元素(pop)的操作。
6817

被折叠的 条评论
为什么被折叠?



