链式栈的初始化与入栈出栈

2019-04-02 10:21

#include #include #define OK 1 #define ERROR 0

#define OVERFLOW -1 typedef int Status;

typedef int SElemType; typedef struct node{ SElemType data; struct node *next; }SLnode,*SLinkList; typedef struct {

SLinkList top,base; int len; }S_LinkList;

Status Build_S(S_LinkList &S) {

int x;

SLinkList p,q;

printf(\请输入数据,以-1结束:\\n\ S.top=(SLinkList )malloc(sizeof(SLnode)); S.base=(SLinkList )malloc(sizeof(SLnode)); S.top->next=S.base; q=S.base; S.len=0;

while(scanf(\ {

p=(SLinkList )malloc(sizeof(SLnode)); p->data=x; S.top->next=p; p->next=q; q=p; S.len++; }

q=S.top->next; while(q!=S.base) {

printf(\ q=q->next; }

return OK; }

void tishi() {

printf(\所有操作如下:\\n\

printf(\(1)采用链式存储实现栈的初始化操作。\\n\ printf(\(2)采用链式存储实现栈的入栈操作。\\n\ printf(\(3)采用链式存储实现栈的出栈操作。\\n\ printf(\(-1)退出\\n\ printf(\请选择:\}

Status Push_S(S_LinkList &S) {

int e;

printf(\请输入要压入的元素:\ scanf(\ SLinkList p,q; q=S.top->next;

p=(SLinkList )malloc(sizeof(SLnode)); p->data=e; S.top->next=p; p->next=q; q=p; S.len++; return OK; }

Status Pop_S(S_LinkList &S) {

SLinkList p; p=S.top->next; if(p!=S.base)

printf(\ return OK; }

int main() {

S_LinkList s; int m; do{

tishi();

scanf(\ switch(m) {

case 1:

Build_S(s); break; case 2:

Push_S(s);

break; case 3:

Pop_S(s); break; }

}while(m!=-1); return 0; }


链式栈的初始化与入栈出栈.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机网络第三次作业

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: