#include<stdlib.h>
#include<stdio.h>
typedef struct STACK
{
 int *date;
 int length;
} stack;
int initstack(stack *h)
{
 h->date=(int *)malloc(0*sizeof(int ));
 if(NULL==h) exit(-1);
 h->length=0;
 return 1;
}
int crestack(stack *h,int n)
{
 int *p;
 printf("输入数据:");
 for(p=h->date;p<h->date+n;p++)
 scanf("%d",p);
 h->length=n;
 return 1;
}
int intsertstack(stack *h,int weizhi ,int shuju)
{
 if(weizhi<1||weizhi>h->length+1)
 {
  printf("位置错误!");
  return 0;
 }
 int *p;
 for(p=h->date+h->length-1;p>=h->date+weizhi-1;p--)
 *(p+1)=*p;
 *(h->date+weizhi-1)=shuju;
 h->length++;
 return 1;
}
void show(stack *h)
{
 int *p;
 printf("结果为:");
 for(p=h->date;p<h->date+h->length;p++)
 printf("%d ",*p);
 printf("\n");
}
int main()
{
 stack k;
 initstack(&k);
 int n;
 printf("输入元素个数:");
 scanf("%d",&n);
 crestack(&k,n);
 show(&k);
 printf("输入要插入的位置和元素:");
 int a,b;
 scanf("%d%d",&a,&b);
 intsertstack(&k,a,b);
 show(&k);
}
posted @ 2015-10-18 09:21  jarrem  阅读(64)  评论(0编辑  收藏  举报