雙指標不帶頭結點的鏈棧的實現(C語言)

2021-06-09 20:30:23 字數 1407 閱讀 1353

/*

雙指標 不帶頭結點的鏈棧

vs2010 除錯

*/#include #include #include #define true 1

#define false 0

#define error -1

#define ok 1

struct node

;struct lstack

;//棧初始化

void init_stack(struct lstack *linkstack)

//判斷棧是否為空

int is_stack_empty(struct lstack *linkstack)

//進棧,數num進棧

int push_stack(struct lstack *linkstack, int num)

tmp_node->data = num;

tmp_node->next = null;

if(is_stack_empty(linkstack))

else

return ok;

}//出棧,出棧元素儲存在num中

int pop_stack(struct lstack *linkstack, int *num)

*num = linkstack->top->data;

tmp_node = linkstack->top;

linkstack->top = linkstack->top->next;

if(linkstack->top == null)

free(tmp_node);

return ok;

}//或取棧頂元素,放入num中

int get_head_elem(struct lstack linkstack, int *num)

*num = linkstack.top->data;

return ok;

}//銷毀棧

int destory_stack(struct lstack *linkstack)

while(linkstack->top != null)

linkstack->base = null;

return ok;

}//獲取棧的長度,將長度返回

int get_stack_length(struct lstack linkstack)

while (linkstack.top != null)

return length;

}//列印棧內的資料元素

void print_stack(struct lstack linkstack)

printf("bottom\n\n");

}int main(int argc, char *argv)

帶頭結點和不帶頭結點的鏈棧基本操作

c 資料結構 把鏈棧想象成單鏈表頭結點的後插和後刪操作 不帶頭結點的鏈棧 include include include using namespace std typedef struct linknode1 listack1 void initstack1 listack1 l 進棧 lista...

單鏈表的實現 不帶頭結點

linklist.cpp 定義控制台應用程式的入口點。定義的鍊錶不含頭結點 include stdafx.h include using namespace std template 定義結點 struct node 定義鍊錶 template class linklist template lin...

單向不帶頭結點不帶環的鍊錶實現

鍊錶有很多種類,單向,雙向,不帶頭,帶頭,不帶環,帶環,結合起來一共可以有八種鍊錶形式 今天我們來實現一種名字叫 單向不帶頭不帶環的鍊錶 下面就是每一部分的 實現 首先我們要做的就是函式的宣告,結構體的定義,標頭檔案的引用 pragma once define header printf n s n...