今天打的一部分链式栈

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 typedef int ElemType;
 5 /*链栈结点*/ 
 6 typedef struct Node{
 7        ElemType data;
 8        struct Node *next;
 9 }LinkStackNode;
10 /*链栈结构*/
11 typedef struct{
12        LinkStackNode *top;
13        int length;
14 }LinkStack; 
15 //初始化链式栈
16 void InitStack(LinkStack *S){
17     S->top=NULL;
18     S->length=0;
19     printf("初始化成功\n");
20 }
21 //入栈
22 int PUSH(LinkStack *S){
23     int n;
24     LinkStackNode *x=(LinkStackNode*)malloc(sizeof(LinkStackNode));
25         if(x==NULL){
26             return printf("申请空间失败\n"); 
27         }
28         printf("请输入你想入栈的数\n");
29         scanf("%d",&n);
30          x->data=n;
31          x->next=S->top;//插入一个新结点在头部 
32          S->top=x;//将头结点指针指向该结点 
33          S->length++;
34         return printf("入栈成功\n");
35 } 
36 int Pop(LinkStack *S,ElemType *x){
37     LinkStackNode *temp=S->top;//将temp指针指向头结点; 
38     //移动栈顶指针
39     S->top=temp->next;//将头结点指针指向temp指针的下一位 
40     S->length--; 
41     *x=temp->data;
42     free(temp); //释放temp 
43     printf("出栈成功");
44 }
45 int main(){
46     LinkStack S;
47     int x;
48     
49     InitStack(&S);
50     
51     PUSH(&S);
52     
53     Pop(&S,&x);
54     
55     printf("%d",x); 
56     
57 
58     
59     
60     
61 }
62 
63  

暂时只打了出栈和入栈。

猜你喜欢

转载自www.cnblogs.com/longlonglonglong/p/10969982.html