网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 单片机 > 正文
课程设计
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 09/07/22
    /* While循环结束*/
 free(Whereat);                                 
 fclose(InputFile);
 fclose(OutputFile);
 remove("Temp.txt");                           /* 删除Temp.txt*/
 return 1;
}

/******检查堆栈是否为空******/
int IsEmpty(Stack S)

 return(S->Next==NULL);   
}

/******检查float堆栈是否为空******/
int FIsEmpty(FStack S)

 return(S->Next==NULL);   
}

/******弹出栈顶元素******/
void Pop(Stack S)
{     
 PtrToNode FirstCell;
 if (IsEmpty(S))
   perror("Empty Stack"); 
 else{
  FirstCell = S->Next;
  S->Next = S->Next->Next;
  free(FirstCell);
 }
}
/******弹出float栈顶元素******/
void FPop(FStack S)
{   
 Ptr_Fn FirstCell;
 if (FIsEmpty(S))
   perror("Empty Stack"); 
 else{
  FirstCell = S->Next;
  S->Next = S->Next->Next;
  free(FirstCell);
 }
}

/******将堆栈置空******/
void MakeEmpty(Stack S)
{   
 if (S == NULL)
   perror("Must use Createstack first");
 else
  while (!IsEmpty(S))
   Pop(S);
}

/******将float堆栈置空******/
void FMakeEmpty(FStack S)
{   
 if (S == NULL)
   perror("Must use Createstack first");
 else
  while (!IsEmpty(S))
   Pop(S);
}

/******元素进栈******/
void Push(char X, Stack S)
{  
 PtrToNode TmpCell;
 TmpCell = (PtrToNode)malloc(sizeof(struct Node));
 if (TmpCell == NULL)
  perror("Out of Space!");
 else{
  TmpCell->Element = X;
  TmpCell->Next = S->Next;
  S->Next = TmpCell;
 }
}

/******float元素进栈******/
void FPush(float X, FStack S)
{  
 Ptr_Fn TmpCell;
 TmpCell = (Ptr_Fn)malloc(sizeof(struct FNode));
 if (TmpCell == NULL)
  perror("Out of Space!");
 else{
  TmpCell->Element = X;
  TmpCell->Next = S->Next;
  S->Next = TmpCell;
 }
}

/******返回栈顶元素******/
char Top(Stack S)
{
 if (!IsEmpty(S))
  return S->Next->Element; 
 perror("Empty Stack");
 exit(1);
 return 0;
}

/******返回float栈顶元素******/
float FTop(FStack S)
{
 if (!FIsEmpty(S))
  return S->Next->Element;
 perror("Empty Stack");
 exit(1);
 return 0;
}

/******将堆栈元素倒置******/
void Reverse(Stack Rev)
{
 Stack Tempstack;
 Tempstack = malloc(sizeof(struct Node));
 Tempstack->Next = NULL;
  while (!IsEmpty(Rev)){
   Push(Top(Rev),Tempstack);    /*将元素压栈到一个临时堆栈*/
   Pop(Rev);
  }
  Rev->Next = Tempstack->Next;    /*指向新的堆栈*/
}


/*******
Whereat 说明:
Whereat 记录了操作数和运算符号的位置,用A和B区分。A = operand, B = operator.
(例如 1+2转换成12+,在whereat中的形式应该是 AAB)
OpHolder说明:
Char类型的堆栈Opholder用来保存运算符号。
******/

/******将中缀表带式转换为后缀表达式******/
void ConvertToPost(FILE *In, Stack Whereat, FILE *Temp)
{
 Stack OpHolder;
 char holder;
 char lastseen;
 int digitcounter = 0;                  &nb

  • 上一篇资讯: ep51编程器
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 电话:013574892963 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号