更新 'ex3_1.c'

This commit is contained in:
xtaodada 2022-03-31 20:58:14 -04:00
parent 7de204451e
commit 8a91eacb4c

32
ex3_1.c
View File

@ -13,7 +13,7 @@ typedef struct {
int top; // 栈顶指针
}SqStackChar;
void initStack(SqStack *L){
void InitStack(SqStack *L){
L->top = -1;
printf("\n初始化成功\n");
}
@ -64,7 +64,7 @@ void OutputStack(SqStack L){
}
printf("\n\n");
}
int insertStack(SqStack *L, int i, DataType e){
int InsertStack(SqStack *L, int i, DataType e){
if(L->top == MAX-1){
return 0;
} else {
@ -82,7 +82,7 @@ int insertStack(SqStack *L, int i, DataType e){
return 1;
}
}
int DeleteList1(SqStack *L, DataType e){
int DeleteListData(SqStack *L, DataType e){
for(int i=0; i<L->top+1; i++){
if(L->data[i]==e){
// 将 i 以后的元素向前移动 1 个单位
@ -95,7 +95,7 @@ int DeleteList1(SqStack *L, DataType e){
}
return 0;
}
int DeleteList2(SqStack *L, int i){
int DeleteListPos(SqStack *L, int i){
// 验证位置
if(i>L->top+1 || i<0){
return 0;
@ -107,7 +107,7 @@ int DeleteList2(SqStack *L, int i){
L->top--;
return 1;
}
char num_to_char(int n){
char NumToChar(int n){
if(n>=0 && n<=9){
return (char)('0'+n);
} else {
@ -132,12 +132,12 @@ int PopChar(SqStackChar *L, char *e){
return 1;
}
}
void base(SqStackChar *L, int n, int e){
void Base(SqStackChar *L, int n, int e){
int i;
char temp;
// 转换
while(e){
PushChar(L, num_to_char(e%n)); // 进栈
PushChar(L, NumToChar(e%n)); // 进栈
e=e/n;
}
// 输出
@ -152,12 +152,12 @@ void base(SqStackChar *L, int n, int e){
}
printf("\n\n");
}
void huiwen(SqStackChar *L, int e){
void Palindrome(SqStackChar *L, int e){
int i=1,n=e;
char temp,temp1;
// 转换
while(n){
PushChar(L, num_to_char(n%10)); // 进栈
PushChar(L, NumToChar(n%10)); // 进栈
n/=10;
}
// 比较
@ -166,7 +166,7 @@ void huiwen(SqStackChar *L, int e){
if(i==0){
break;
} else {
temp1=num_to_char(e%10);
temp1=NumToChar(e%10);
e/=10;
if(temp!=temp1){
i=0;
@ -186,7 +186,7 @@ int main(){
SqStackChar L2;
int n,choice;
DataType e;
initStack(&L1); // 初始化
InitStack(&L1); // 初始化
for(;;){
printf("\t\t1.入栈\n");
@ -241,7 +241,7 @@ int main(){
scanf("%d",&n);
printf("请输入要插入的元素:");
scanf("%d",&e);
n=insertStack(&L1,n-1,e);
n=InsertStack(&L1,n-1,e);
if(!n){
printf("插入失败,位置输入错误。\n");
} else {
@ -252,7 +252,7 @@ int main(){
case 6:
printf("请输入需要删除的元素的值:");
scanf("%d",&e);
n=DeleteList1(&L1,e);
n=DeleteListData(&L1,e);
if(n==0){
printf("删除失败,元素不存在。\n");
} else {
@ -263,7 +263,7 @@ int main(){
case 7:
printf("请输入需要删除的元素的位置:");
scanf("%d",&n);
n=DeleteList2(&L1,n);
n=DeleteListPos(&L1,n);
if(n==0){
printf("删除失败,位置不存在。\n");
} else {
@ -277,13 +277,13 @@ int main(){
scanf("%d",&e);
printf("请输入需要转换成的进制:");
scanf("%d",&n);
base(&L2,n,e);
Base(&L2,n,e);
break;
case 9:
L2.top = -1; // 初始化
printf("请输入需要判断的回文数:");
scanf("%d",&e);
huiwen(&L2,e);
Palindrome(&L2,e);
break;
default:
break;