【数据结构】堆栈的基本操作

【数据结构】堆栈的基本操作

堆栈的概念:是一组相同类型数据的集合,并且拥有后进先出的特点,所有的操作都在堆栈顶端进行。

堆栈的基本操作:

Init 创建一个空堆栈Push 把数据压入堆栈顶端Pop 从堆栈顶弹出数据Top 从栈顶取数据Empty 判断堆栈是否为空堆栈,是则返回true,否则返回falseFull 判断栈是否为满,是则返回true,否则返回false

用数组实现堆栈:

1 typedef struct st_stack{

2 int size;

3 int *data;

4 int top;

5 }T_Stack;

6

7 int StackInit( T_Stack *ptStack, int *data, int size)

8 {

9 ptStack->size = size;

10 ptStack->data = data;

11 ptStack->top = 0;

12

13 return 0;

14 }

15

16 int StackPush( T_Stack *ptStack, int data )

17 {

18 if( ptStack->top == ptStack->size )

19 {

20 return -1;

21 }

22

23 ptStack->data[ptStack->top++] = data;

24

25 return 0;

26 }

27

28 int StackPop( T_Stack *ptStack, int *data )

29 {

30 if( ptStack->top == 0 )

31 {

32 return -1;

33 }

34

35 *data = ptStack->data[--ptStack->top];

36

37 return 0;

38 }

39

40 int StackTop( T_Stack *ptStack, int *data )

41 {

42 if( ptStack->top == 0 )

43 {

44 return -1;

45 }

46

47 *data = ptStack->data[ptStack->top - 1];

48

49 return 0;

50 }

51

52 int StackIsEmpty( T_Stack *ptStack )

53 {

54 return ( ptStack->top == 0 );

55 }

56

57 int StackIsFull( T_Stack *ptStack )

58 {

59 return ( ptStack->top == ptStack->size );

60 }

更多创意作品