棧的建立,插入,刪除

2021-04-24 06:04:26 字數 933 閱讀 2871

資料結構學到了棧的部分了,呵呵自己寫了下程式,希望來訪的朋友多多提出意見啊!大家共同進步

#include

#include

#include

#include

#define stack_init_size 10

#define stackincrement 10

#define ok 0;

#define error -1;

struct stack;

struct stack head;

//取棧頂元素

char* gettop()

*e=*(s->top-1);     //top指向的是棧頂的下乙個位置

return e;

}//插入元素e為新的棧頂元素

int push(char *e)

*s->top++=*e;

return ok;

}//當棧頂不為空時,刪除棧頂元素

char pop()

void print()

while(s->base!=s->top)

}int main()

printf("構造棧成功:/n");

print();

//讀棧頂元素

count=head.count;

while(count)

z=gettop();

printf("取出的棧頂元素是:%c/n",*z);

print();

count=head.count;

while(count)

//刪除棧頂元素 

printf("成功刪除棧頂元素:%c/n",pop());

head.count--;

print();

free(head.base);

return 0;

}

棧的插入 刪除問題

棧的插入一直比較懵,經常理不清頭緒。今天做了乙個關於棧的問題,思維還算清晰。趕緊記錄下來。大家應該都了解,棧是一種先入後出的資料結構。在進行插入時top指標決定著具體的操作,根據指標的不同,棧的操作分為兩種情況,具體如下 1 top指標所指向的是真實的棧頂節點 若指標正好指向的是節點本身,在棧中插入...

堆的建立,插入,刪除

堆的概念 如果有乙個關鍵碼的集合k 把它的所有元素按完全二叉樹的順序儲存方式儲存在乙個一維陣列中,並滿足 ki k2 i 1 且ki k2 i 2 i 0,1,2 則稱這個堆為最小堆 或者最大堆 其實這麼多乾乾的概念還是很不好理解的 先來說一下什麼是完全二叉樹 如果一顆具有n個結點的二叉樹的結構與滿...

堆的建立 刪除 插入

我們知道在c語言中也有乙個名字叫做堆,那麼在資料結構中的堆和c語言中的堆一樣嗎?答案是 no c語言中的堆 其實是因為有一堆東西在此放著,所以起名為堆 資料結構的堆 如果有乙個關鍵碼的集合k 把它的所有元素按完全二叉樹的順序儲存方式儲存在乙個一維陣列中,並滿足 ki k2 i 1 且 ki k2 i...