Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1296402
  • 博文数量: 175
  • 博客积分: 2743
  • 博客等级: 少校
  • 技术积分: 4024
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-30 01:41
文章分类

全部博文(175)

文章存档

2015年(1)

2013年(53)

2012年(71)

2011年(50)

分类: LINUX

2011-10-13 16:05:52

  1. 1 /*stack头文件*/
  2.  2 #include <stdio.h>
  3.  3 #include <stdlib.h>
  4.  4
  5.  5 typedef struct Node
  6.  6 {
  7.  7 int data;
  8.  8 struct Node* next;
  9.  9 }StackNode;
  10. 10
  11. 11 void initStack(StackNode* top)
  12. 12 {
  13. 13 top->next=NULL;
  14. 14 }
  15. 15
  16. 16 int IsEmpty(StackNode* top)
  17. 17 {
  18. 18 if(top->next==NULL)
  19. 19 return 1;
  20. 20 return 0;
  21. 21 }
  22. 22
  23. 23 void Push(StackNode* top,int item)
  24. 24 {
  25. 25 StackNode* temp=(StackNode*)malloc(sizeof(StackNode));
  26. 26 if(temp==NULL)
  27. 27 {
  28. 28 printf("malloc memory fail");
  29. 29 exit(1);
  30. 30 }
  31. 31 temp->data=item;
  32. 32 temp->next=top->next;
  33. 33 top->next=temp;
  34. 34 }
  35. 35
  36. 36 int Pop(StackNode* top)
  37. 37 {
  38. 38 StackNode* temp;
  39. 39 int tempint;
  40. 40 if(top==NULL)
  41. 41 {
  42. 42 printf("There is no elements\n");
  43. 43 exit(1);
  44. 44 }
  45. 45 temp=top->next;
  46. 46 tempint= temp->data;
  47. 47 top->next=temp->next;
  48. 48 free(temp);
  49. 49 return tempint;
  50. 50 }
  51. 51
  52. 52 int GetTop(StackNode* top)
  53. 53 {
  54. 54 if(top==NULL)
  55. 55 {
  56. 56 printf("There is no elements\n");
  57. 57 exit(1);
  58. 58 }
  59. 59 return top->next->data;
  60. 60 }
  61. 61
  62. 62 void ClearStack(StackNode* top)
  63. 63 {
  64. 64 StackNode* temp;
  65. 65 while(top)
  66. 66 {
  67. 67 temp=top;
  68. 68 top=top->next;
  69. 69 free(temp);
  70. 70 }
  71. 71 }


  1. 1 /*测试stack*/
  2.  2 #include "StackList.h"
  3.  3
  4.  4 int main()
  5.  5 {
  6.  6 int temp;
  7.  7 StackNode* top;
  8.  8 top=(StackNode*)malloc(sizeof(StackNode));
  9.  9 initStack(top);
  10. 10 Push(top,10);
  11. 11 Push(top,20);
  12. 12 temp=Pop(top);
  13. 13 printf("%d\n",temp);
  14. 14 temp=GetTop(top);
  15. 15 printf("%d\n",temp);
  16. 16
  17. 17 Pop(top);
  18. 18 // Pop(top);
  19. 19 temp=IsEmpty(top);
  20. 20 printf("%d\n",temp);
  21. 21 ClearStack(top);
  22. 22
  23. 23 }

阅读(1262) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~