标题:请大家帮一下,数据结构和C的结合
取消只看楼主
zhy263033252
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2009-9-21
结帖率:50%
已结贴  问题点数:5 回复次数:0 
请大家帮一下,数据结构和C的结合
   

   各位能不能帮我修改一下
    做的是一个栈的   插入和删除
  


#include<string.h>

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

typedef int Status;
typedef int Boolean;
typedef int SElemType;

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 20
typedef struct SqStack
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;


Status InitStack(SqStack *S)
{
(*S).base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!(*S).base)
exit(OVERFLOW);
(*S).top=(*S).base;
(*S).stacksize=STACK_INIT_SIZE;
return OK;
}


Status Push(SqStack *S,SElemType e)
{
if((*S).top-(*S).base>=(*S).stacksize)
    {
    (*S).base=(SElemType*)realloc((*S).base,
    ((*S).stacksize+STACKINCREMENT)*sizeof(SElemType));
    if(!(*S).base)
    exit(OVERFLOW);
    (*S).top=(*S).base+(*S).stacksize;
    (*S).stacksize+=STACINCREMENT;
    }
*((*S).top)++=e;
return OK;
}

Status Pop(SqStack *S,SElemType *e)
{
if((*S).top==(*S).base)
return ERROR;
*e=*--(*S).top;
return OK;
}


Status StackTraverse(SqStack S,Status(*visit)(SElemType))
{
while(S.top>S.base)
visit(*S.base++);
printf("\n");
return OK;
}


void print(SElemType c)
{
printf("%s",c);
}


void main()
{
SqStack Sa;
SElemType c;
int m;
str i;
InitStack(&Sa);
printf("Please insert data: ");
scanf("%s",&i);
Push(&Sa,i);
printf("Sa= ");
StackTraverse(Sa,print);

while(1)
    {
    printf("Please choose now?\n");
    printf("1.Insert\n");
    printf("2.Delete\n");
    printf("3.Exit\n");
    printf("Please Input: ");
    scanf("%d",&m);

    if(m==1)
        {
        printf("Insert data.\n");
        scanf("%s",&i);
        Push(&Sa,i);
        printf("Sa= ");
        StackTraverse(Sa,print);
        }
    else if(m==2)
        {
        printf("Delete.\n")
        Pop(&Sa,i);
        printf("Sa= ");
        StackTraverse(Sa,print);
        }
    if(m==3) break;
    }
}
搜索更多相关主题的帖子: 结合 数据结构 
2009-09-25 17:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-286917-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.985420 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved