今天打的一部分链式栈

Posted longlonglonglong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了今天打的一部分链式栈相关的知识,希望对你有一定的参考价值。

 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  

暂时只打了出栈和入栈。

以上是关于今天打的一部分链式栈的主要内容,如果未能解决你的问题,请参考以下文章

数据结构栈的链式存储结构

代码示例_数据结构_链式栈

2 链式存储栈

栈的链式存储结构及应用(CJava代码)

栈的实现(c语言)--- 数据结构

栈的实现(c语言)--- 数据结构