#include #include #include #define max_size 20
/** 使用adt實現棧模型的出棧和入棧
* 函式中返回值 -1 表示失敗, 0 表示成功
*
*/typedef struct node *node;
typedef struct stack *stack;
stack createmptystack()
stack->top = null;
stack->size = 0;
return stack;
}int isstackempty(stack stack)
int isstackfull(stack stack)
int push(stack stack,int data)
p = (node)malloc(sizeof(struct node));
if(p == null)
p->data = data;
p->pre = null;
p->pre = stack->top;
stack->top = p;
(stack->size) ++;
return 0;
}int pop(stack stack , int* data)
node p ;
p = stack->top;
*data = p->data;
stack->top = p->pre;
(stack->size) --;
free(p);
p = null;
return 0;
}int gettop(stack stack,int *data)
*data = stack->top->data;
return 0;
}void printstack(stack stack)
node p = stack->top;
while(p!=null)
printf("\n");
}void destory(stack stack)
} free(stack);
return ;
}int main(int argc ,char *argv)
ret = gettop(stack,&data);
if(ret == -1)else
ret = pop(stack ,&data);
if(ret == -1)else
printstack(stack);
}
目的很明顯,給自己做乙個記錄,**在ubuntu上編譯通過。**中會有一些我沒有考慮到的內容,請指出,
資料結構 棧ADT
棧 stack 是限定僅在表尾插入和刪除操作的線性表 允許插入和刪除的一端稱為棧頂 top 另一端稱為棧底 bottom 我們可以模擬手槍彈夾,瀏覽器的後退和前進等等都是棧 棧的插入操作,稱為進棧,也稱壓棧 入棧 push 棧的刪除操作,稱為出棧,也稱為彈棧 pop 棧本身就是乙個線性表,線性表的順...
資料結構 順序棧ADT
抽象資料型別 abstract data type,adt 是電腦科學中具有類似行為的特定類別的資料結構的數學模型 或者具有類似語義的一種或多種程式語言的資料型別。抽象資料型別是間接定義的,通過其上的可執行的操作以及這些操作的效果的數學約束 與可能的代價 維基百科 ifndef stack h in...
資料結構 鏈棧ADT
抽象資料型別 abstract data type,adt 是電腦科學中具有類似行為的特定類別的資料結構的數學模型 或者具有類似語義的一種或多種程式語言的資料型別。抽象資料型別是間接定義的,通過其上的可執行的操作以及這些操作的效果的數學約束 與可能的代價 維基百科 ifndef stack h in...