# ifndef seqstack_h
# define seqstack_h
# include # include # include //陣列去模擬棧的順序儲存
# define max_size 1024
# define seqstack_true 1
# define seqstack_false 0
typedef struct seqstack
seqstack;
//初始化
seqstack* init_seqstack();
//入棧
void push_seqstack(seqstack* stack, void* data);
//返回棧頂元素
void* top_seqstack(seqstack* stack);
//出棧
void pop_seqstack(seqstack* stack);
//判斷是否為空
int isempty(seqstack* stack);
//返回棧中元素的個數
int size_seqstack(seqstack* stack);
//清空棧
void clear_seqstack();
//銷毀
void freespace_seqstack(seqstack* stack);
# endif
# include "seqstack.h"
//初始化
seqstack* init_seqstack()
stack->size = 0;
// printf( "---\n");
return stack;
}//入棧
void push_seqstack(seqstack* stack, void* data)
if(stack == null)
if(data == null)
stack->data[stack->size] = data;
stack->size++;
}//返回棧頂元素
void* top_seqstack(seqstack* stack)
if(stack->size == 0)
return stack->data[stack->size - 1];
}//出棧
void pop_seqstack(seqstack* stack)
if(stack->size == 0)
stack->data[stack->size - 1] = null;
stack->size--;
}//判斷是否為空
int isempty(seqstack* stack)
if(stack->size == 0)
return seqstack_false;
}//返回棧中元素的個數
int size_seqstack(seqstack* stack)
//清空棧
void clear_seqstack(seqstack* stack)
for(int i = 0; i < stack->size; i++)
stack->size = 0;
}//銷毀
void freespace_seqstack(seqstack* stack)
free(stack);
}# include "seqstack.h"
typedef struct person
person;
void test01()
; person p2 = ;
person p3 = ;
person p4 = ;
person p5 = ;
//入棧
push_seqstack(stack, &p1);
push_seqstack(stack, &p2);
push_seqstack(stack, &p3);
push_seqstack(stack, &p4);
push_seqstack(stack, &p5);
//輸出
while(size_seqstack(stack) )
//釋放記憶體
棧的順序儲存
棧的順序儲存就是用連續的空間儲存棧中的結點,一般都是用陣列來實現這種連續空間的。為了保證棧的filo特點,所以進棧出棧總是在棧頂一端進行。因此,不會引起類似順序表中的大量資料的移動。用陣列實現棧結構時,棧底bottom可取下標為0的陣列元素,假定用top給出棧頂元素的下標位址,即棧頂指標,那麼初始化...
棧的順序儲存
seqstack.h pragma once include include include ifdef cplusplus extern c typedef void seqstack 使用陣列高下標的位置作為棧頂,因為插入和刪除操作中不需要移動陣列中的元素 初始化 seqstack init s...
棧的順序儲存
可以用陣列來表示棧的結構。定義乙個結構體,其中有乙個陣列,動態分配記憶體。top記錄棧頂。標頭檔案 ifndef head h define head h define minsize 5 定義最小長度為5 define empty 1 棧空情況 typedef int elementtype ty...