问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言数据结构实现入队出队入栈出栈操作代码怎么写?

发布网友 发布时间:2022-05-20 22:43

我来回答

4个回答

热心网友 时间:2023-10-08 14:48

栈肯定用链表实现起来灵活点,入栈的时候,把新的节点直接直接放到头节点之后,已有的节点全部往后移了一个位置,然后出栈的时候,每次取出头节点之后的那个节点,头节点指到下一个节点。
这样就实现了“后进先出”。代码自己写吧,练习练习。

热心网友 时间:2023-10-08 14:49

//It's the header
//stack_class.h

#ifndef _STACK_CLASS_H_
#define _STACK_CLASS_H_

#include <tchar.h>

/***
*it's used as the element of the stack
***/
typedef struct s_node
{
int nData;
struct s_node *pNext;

/***
*do the initialization
***/
s_node()
{
nData = 0;
pNext = NULL;
}
}S_NODE;
typedef S_NODE *PSTACK;

/***
*it's the stack class
***/
class stack_class{
public:
stack_class();
~stack_class();
int stack_push(int nData);
int stack_pop();

public:
PSTACK m_stack;
int nTop;
};

#endif

/////////////////////////////////////////////////////////

//It's the source file
//stack_class.cpp

#include "stack_class.h"

/***
*do the initialization
***/
stack_class::stack_class()
{
m_stack = NULL;
nTop = -1;
}

/***
*release the memory
***/
stack_class::~stack_class()
{
PSTACK pCurrent = NULL;
pCurrent = m_stack;

while(pCurrent)
{
m_stack = m_stack->pNext;
delete pCurrent;
pCurrent = m_stack;
}
}

/***
*function:push one element to the stack
*nData:the data you want to push
*retval:return the top
*note:top:we start from -1.you can change it as you wish
***/
int stack_class::stack_push(int nData)
{
PSTACK pInsert = new S_NODE;
pInsert->nData = nData;
pInsert->pNext = NULL;

if (-1 == nTop)
{
m_stack = pInsert;
}
else
{
pInsert->pNext = m_stack;
m_stack = pInsert;
}
nTop++;

return nTop;
}

/***
*function:pop one element from the stack
*retval:return the value we pop
*note:if stack is empty,we return -1
***/
int stack_class::stack_pop()
{
int nData = 0;
PSTACK pCurrent = NULL;
pCurrent = m_stack;

if (-1 == nTop)
{
return -1;
}
else
{
nData = pCurrent->nData;
m_stack = pCurrent->pNext;
delete pCurrent;

nTop--;
}

return nData;
}

给你包装成一个类了,方便使用

热心网友 时间:2023-10-08 14:49

我有完整的代码,请留下邮箱。

热心网友 时间:2023-10-08 14:50

好像和链表差不多
C语言数据结构实现入队出队入栈出栈操作代码怎么写?

栈肯定用链表实现起来灵活点,入栈的时候,把新的节点直接直接放到头节点之后,已有的节点全部往后移了一个位置,然后出栈的时候,每次取出头节点之后的那个节点,头节点指到下一个节点。这样就实现了“后进先出”。代码自己写吧,练习练习。

数据结构定义一个栈并实现入栈和出栈操作的程序c语言完整版

如下:include "stdio.h"struct stackNode{ int data; struct stackNode *nextPtr;};typedef struct stackNode LISTSTACK;typedef LISTSTACK *STACKNODEPTR;void push(STACKNODEPTR *,int);int pop(STACKNODEPTR *);int isEmpty(STACKNODEPTR);void printStack(STACKNODEPTR);void instruct();int...

分别写函数实现初始化栈、入栈、出栈、判断栈空、判断栈满。例如入...

return TRUE;//出栈成功 }

数据结构,必采纳Let Q be a non-emply quenue and l

bool enterQueue(elemType x);//入队 bool delQueue(elemType &amp;x); //出队 void print(); //打印队列元素;~Queue();private:Item * front;Item * rear;};class Stack { public:Stack();bool push(elemType x);//入栈 bool pop(elemType &amp; x);//出栈;void print();~Stack();private...

急!用c语言实现链栈的操作

⑶ 入栈/*将元素x插入链栈top的栈顶*/ void PushLinkStack(LinkStack* &amp;s , ElemType x){ LinkStack *p;p=malloc(sizeof(LinkStack)); /*生成新结点*s */ p-&gt;data=x;p-&gt;next=s;s=p;} ⑷出栈/*删除链栈top的栈顶结点*/ int PopLinkStack (LinkStack* &amp; s, ElemType &amp;x){ ...

利用栈的后进先出特点实现行编辑功能的程序代码(c语言)

struct//结构体定义 { StackElemType elem[Stack_Size];int top;}SeqStack;void InitStack(SeqStack S)//初始化栈 { S-&gt;top=-1;} int IsEmpty(SeqStack S)//判断是否为空 { if(S-&gt;top ==-1)return 1;else return 0;} int IsFull(SeqStack S)//判断是否满栈 { if(S-&gt;top==Stack_...

C语言数据结构关于栈的题

如出栈要实现,取出元素值,并释放空间,可结合取栈顶元素函数做修改,这里不再给出。/ int PopStack(Stack* stack){ Stack* tmpst;if(!IsEmpty(stack)){ tmpst = stack-&gt;next;stack-&gt;next = tmpst-&gt;next;free(tmpst);return 1;} return 0;} //取栈顶元素,仅取出栈顶元素的值,取出...

关于C语言的顺序栈的操作

这是我以前写的,今天不想砍代码,就发这个了 include&lt;stdio.h&gt; include&lt;stdlib.h&gt; define N 100 //栈的结构定义 typedef struct { int elem[N];int top;//栈顶 }Stack;//循环队列的结构定义 typedef struct { int elem[N];int front;int rear;}Queue;int Greatstack(Stack*);int Great...

设计算法,在顺序表上实现创建栈、入栈和出栈操作,将字符ABCDEF依次入栈...

出栈的时候就是返回该顺序表中当前基指针位置处的元素,然后让基指针减一,创建栈就是开辟一段内存单元并初始化基指针。我写的代码如下:// file :Stack.h ifndef _STACK_H_define _STACK_H_define MAX_LENGTH 128 typedef struct SeqList { char *elements;} SeqList;typedef struct Stack { Seq...

严蔚敏数据结构上对顺序栈出栈入栈的算法代码,入栈中的*top++=e和出栈...

没有问题,那个top永远指向没有元素待插入的位置(也就是栈顶元素位置的下一个下标),而不是指向栈顶元素的位置 你说的那种方式是top指向栈顶元素的位置,所以入栈变成了*++top = e,出栈成了e = *top--;了

数据结构中栈怎么出栈 数据结构循环队列出队入队 数据结构队列入队出队 数据结构怎么判断出栈的顺序 数据结构入队出队原则 数据结构进栈出栈 数据结构链栈的实现 数据结构出栈 栈是一种什么的数据结构
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
广西壮族自治区人民政府自治区人民政府组成部门 ...都要喝水,为什么呢?大多数人只在渴的时候才喝水这种做法好吗?_百 ... 广西壮族自治区文化厅职责调整 五个不能等? 广西壮族自治区文化厅其他事项 广西壮族自治区文化厅内设机构 广西壮族自治区文化厅主要职责 13种从未灭绝的史前动物!最年长已4.45亿年,相貌几乎没有改变 您知道13种未灭绝的史前动物是什么吗? ...空间不能转发别人的说说。而且提示内容被删或审核。郁闷。我用其他... 深圳有哪家移动营业厅是可以办外省的电话卡?拜托各位了 3Q 数据结构 在什么情况下出队要修改队尾指针? 请问,数据结构,有向图的广度遍历。第一个while 顶点出队(13行)的时候为什么是出队了?(我知 数据结构 栈的出队入队完整代码 我在深圳观澜那里可以,补办电话卡? 数据结构 这两行有关链栈出队的是什么意思 深圳石岩在哪里可以补办异地移动卡号码? 数据结构 环形队列出队一次 出队的元素就被删了吗 数据结构为什么队列出队操作返回类型是整型? 数据结构 这两行有关链栈出队的是什么意思? 煮粽子的正确方法 途观1.8t怎么样 2020年四川考生457分能考上湖州师范学院求真学院吗 新途观20151.8t舒适型是否配有车身稳定系统 途观20151.8t两驱豪华版蓝牙电话设置 大众途观20151.8t手动限量板烧机油怎么回事 大众途观20151.8t四驱豪华版的车被撞了大灯换一个要多少钱 如何上好小学禁毒教育课 与死神共舞是哪年制作的 求关于毒品危害的纪录片片名 你好请问深圳圳美附近那里补办移动手机卡? 数据结构 循环队列怎么实现从任意位置出对。 深圳沙井上南这有补办异地SIM卡的营业厅吗? 求一个数据结构中链队进队出队的完整程序 本人在深圳,现在想办张电话卡 数据结构中关于“队”的问题 深圳哪里可以补办异地移动电话卡吗 深圳市宝安区松岗那里有补办移动手机卡的地方?(别人说要专门的营业厅才行) 维密时尚秀从创办至今,到底哪一年举办的时尚秀最为经典? 这个维密天使是谁,2014年的 权路征途 第11章 背后的原因 如何开茶叶店,营销策略这样做 主人公叫欧阳志远的小说名 医道仕途 第十二章 谁是隐形人 关于我的幸福家园的画!!! 和龙潜校园差不多的小说 淘宝上如何联系快递员上门取退件 求王牌特卫小说全集,谁下载了麻烦传过来, 徐子清,欧阳志远是哪儿部小说里的? 草根医生的升迁:医道仕途txt全集下载