• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: 数据结构  例程  

资源简介

数据结构例程。。。 按照陈越姥姥的笔记写的。。。

资源截图

代码片段和文件信息

#include
#include
#include
#include

#define init_size 20
#define increment 20

typedef char ElemType;

typedef struct sqStack
{
ElemType *top;
ElemType *base;
int stack_size;
};

void init_stack( sqStack *s)
{
s->base = ( ElemType*)malloc(init_size * sizeof( ElemType ) );
if ( !s->base )
exit(0);

s->top = s->base;
s->stack_size = init_size;
}

void push( sqStack *s ElemType e)
{
if ( s->top - s->base >= s->stack_size ){
s->base = (ElemType *)realloc( s->base  (s->stack_size + increment) * sizeof( ElemType) );
if ( !s->base)
exit(0);
}

*(s->top) = e;
s->top++;

}

void pop( sqStack *s ElemType *e)
{
if ( s->top == s->base)
return ;

s->top --;
*e = *(s->top);
}

int stacklen( sqStack *s)
{
return s->top - s->base;
}

int main(void)
{
sqStack s;
init_stack(&s);
char str[100];
ElemType temp;
int i = 0;

char e;
scanf(“%c“ &e);

while ( e != ‘\n‘)
{
while ( isdigit(e)) //分离数字 
{
printf(“%c“ e);
scanf(“%c“ &e);
}
printf(“ “);

if ( ‘*‘==e || ‘/‘==e || ‘(‘==e) // * / 直接入栈 
{
push( &s e);
}

else if ( ‘)‘== e )  // 反括号一直弹栈直至正括号 
{
do
{
pop( &s &temp);
printf(“%c “ temp);
}while ( ‘(‘ != temp);
}

else if ( ‘+‘==e || ‘-‘==e) //加减号 
{
if ( !stacklen(&s) ) // 如果空栈, 直接入栈 
{
push( &s e);
}
else
{
do
{
pop(&s &e);
if ( ‘(‘ == e)
push(&se);
else
printf(“%c “ e);
}while( stacklen(&s) && ‘(‘ != e);

push( &s e);
}

}
else if ( e != ‘\n‘)
{
printf(“error!\n“);
return -1;
}

if ( e != ‘\n‘)
scanf(“%c“ &e);
}

while( stacklen(&s))
{
pop(&s &e);
printf(“%c “ e);
}

printf(“\n“);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1047  2015-10-18 16:12  堆栈的链表实现.cpp

     文件        969  2015-10-18 16:10  堆栈的数组实现.cpp

     文件       1401  2015-10-18 16:25  队列的链表实现.cpp

     文件       1072  2015-10-18 16:17  队列的数组实现.cpp

     文件       1627  2015-10-18 21:14  二叉树的遍历.cpp

     文件       2449  2015-10-18 20:30  平衡二叉树.cpp

     文件       1685  2015-10-18 18:45  搜索二叉树.cpp

     文件       1894  2015-10-18 21:19  中缀表达式转换为逆波兰表达式.cpp

----------- ---------  ---------- -----  ----

                12144                    8


评论

共有 条评论