請各位大神幫我完善一下這段代碼,要求是 加入堆疊的反轉功能,給我一個學習的機會吧

/*堆疊子系統*/
#include <stdio.h>
#include <malloc.h>
#define MAXSIZE 100 /*陣列最大長度為100*/
typedef int DataType; /*定義DataType為int型別*/
typedef struct stacknode /*鏈堆疊存盤型別*/
{
DataType data; /*定義結點的資料域*/
struct stacknode *next; /*定義結點的指標域*/
} LinkStack;
LinkStack *InitStack()
{ /*初始化鏈堆疊函式*/
LinkStack *S;
S=NULL;
return S; /*初始化堆疊為空*/
}
int EmptyStack(LinkStack *S)
{ /*判斷堆疊空函式*/
if(S==NULL) /*堆疊為空*/
return 1;
else
return 0;
}
LinkStack *Push(LinkStack *S,DataType x)
{ /*進堆疊函式*/
LinkStack *p;
p=(LinkStack *)malloc(sizeof(LinkStack));/*生成新結點*/
p->data=https://bbs.csdn.net/topics/x; /*將x放入新結點的資料域*/
p->next=S; /*將新結點插入鏈表表頭之前*/
S=p; /*新結點作為堆疊頂*/
return S; /*回傳堆疊頂S*/
}
void MenuStack()
{ /*顯示選單子函式*/
printf("\n 堆疊子系統");
printf("\n==================================================");
printf("\n| 1——初始化堆疊 |");
printf("\n| 2——入堆疊操作 |");
printf("\n| 3——反轉操作 |");
printf("\n| 0——回傳 |");
printf("\n==================================================");
printf("\n請輸入選單號(0-3):");
}
main()
{
int i,n,flag;
LinkStack *S;
DataType x;
char ch1,ch2,a;
ch1='y';
while(ch1=='y'||ch1=='Y')
{ MenuStack();
scanf("%c",&ch2);
getchar();
switch(ch2)
{
case '1':
S=InitStack();
printf("堆疊的初始化完成!");
break;
case '2':
printf("請輸入要入堆疊的元素個數:");
scanf("%d",&n);
printf("請輸入%d個整數進行入堆疊:",n);
for(i=0;i<n;i++)
{
scanf("%d",&x);
S=Push(S,x);
}
printf("入堆疊成功!");
break;
case '0':
ch1='n';break;
default:
printf("輸入有誤,請輸入0-3進行選擇!");
}
if(ch2!='0')
{ printf("\n按回車鍵繼續,按任意鍵回傳主選單!\n");
a=getchar();
if(a!='\xA')
{
getchar();ch1='n';
}
}
}
}
uj5u.com熱心網友回復:
求救
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/78829.html
標籤:C++ 語言
下一篇:c語言實作icmp協議
