学习链栈求源码

linfe 2004-05-09 11:34:39
由于原来数据结构没学好,现在反过来再学,
发现没老师问了,于是跑这上面来求一链栈
的源码,继续学习。求哪位大侠不吝赐教!!
...全文
29 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aheadyes 2004-05-09
  • 打赏
  • 举报
回复
typedef int ElemType;//自定义类型
typedef struct LNode {
ElemType data;
struct LNode *next;
} LNode,*LinkList;
typedef LinkList LinkStack;

void InitStack_L(LinkStack& S)
{
S = NULL;
}

void Push_L(LinkStack& S, ElemType e)
{
LinkStack P = new LNode;
P->next = S;
P->data = e;
S = P;
}

bool StackEmpty(LinkStack S)
{
if(S)
return false;
else return true;
}
bool Pop_L(LinkStack& S, ElemType& e)
{
if(S)
{
LinkStack P = S;
S = S->next;
e = P->data;
delete P;
return true;
}
else
return false;
}
ElemType GetTop_L(LinkStack s)
{
if(s!= NULL)
{
return s->data;
}
}
aheadyes 2004-05-09
  • 打赏
  • 举报
回复
错了吧:你身边没有编译器.?
LinkNode p = new LinkNode; ===> LinkNode *p = new LinkNode;// new 返回的是指针:
p.data ===>p->data = e;
p.next= S ===>p->next = S;
S->next = p ==> s = p//下次继续push的时候,才能支持后来先出的原则:

建议楼主拿本书过来看. 书上讲得很清楚:
偶也是 学没多久的说.共勉:(
linfe 2004-05-09
  • 打赏
  • 举报
回复
哪位大侠能不能帮我看看
在我的push函数中,是这样写的,不知道有没有问题。
void Push_LS(LinkStack &S, ElemType e)
{
LinkNode p = new LinkNode;
p.data = e;
p.next = S;
S->next = p;
}
linfe 2004-05-09
  • 打赏
  • 举报
回复
我大概明白了基本的操作,但是在实现的时候发现了点问题,
一下没想出解决的办法,于是就求个源码看看。
谢谢!^-^ 先学习一下
wlpwind 2004-05-09
  • 打赏
  • 举报
回复
主要不是源代码,
知道什么是栈,和链表的基本操作就很简单了。

整个数据结构课程都是这样。

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧