//11.1-4
#include <stdio.h>
#include <stdlib.h>
int Search(int Array[],int Stack[],int x)
{
int p=Array[x];
if(p>0&&p<Stack[0]&&x==Stack[p])
return p;
return 0;
}
int Insert(int Array[],int Stack[],int x)
{
int ret;
ret=Search(Array,Stack,x);
if(ret)
{
printf("already exist\n");
return 0;
}
Stack[0]++;
Stack[Stack[0]]=x;
Array[x]=Stack[0];
return Stack[0];
}
int Delete(int Array[],int Stack[],int x)
{
int ret;
ret=Search(Array,Stack,x);
if(!ret)
{
printf("Error,No such element\n");
return 0;
}
Array[Stack[Stack[0]]]=ret;
Stack[ret]=Stack[Stack[0]];
Stack[0]--;
return ret;
}
void Print(int Stack[])
{
for(int i=1;i<=Stack[0];i++)
printf("%d ",Stack[i]);
printf("\n");
}
void main()
{
int Array[1000],Stack[100]={0};
Insert(Array,Stack,10);
Insert(Array,Stack,19);
Insert(Array,Stack,17);
Insert(Array,Stack,14);
Insert(Array,Stack,18);
Print(Stack);
Delete(Array,Stack,14);
Print(Stack);
int i=Search(Array,Stack,10);
if(i)
printf("%d\n",Stack[i]);
}
算法导论11.1-4答案
最新推荐文章于 2024-10-10 12:12:02 发布