完成鏈式棧
1.初始化
2.銷毀
3.入棧
4.出棧
5.取棧頂元素
如果linkstack stack定義的stack是在棧上的,那麼它結構體裡面的head也是在棧上的;但如果stack是malloc出來的,像這樣(linkstack* stack=malloc( )),那head變數就在堆上。head究竟是在棧上還是堆上,得看它所屬的具體在哪。
seqstack.h
//單向帶頭結點的不帶環的單向鏈式表的頭插頭刪。head位置就是棧頂,尾部是棧底。
#pragma once
#include
#include
#include
typedef char linkstacktype;
typedef struct linknodelinknode;
typedef struct linkstacklinkstack;
void linkstackinit(linkstack* stack);//初始化函式
void destroynode(linknode* node);//銷毀函式
void linkstackprintchar(linkstack* stack, const char* msg);//列印函式
void linkstackpush(linkstack* stack, linkstacktype value);//入棧
void linkstackpop(linkstack* stack);//出棧
int linkstacktop(linkstack* stack, linkstacktype* value);//取棧頂元素
linkstack.c
#include "linkstack.h"
void linkstackinit(linkstack* stack)
stack->head.data = '\0';//.用於結構體指向的內容,->用於指標指向的內容,'\0'讓它隨便指向乙個數。data也可以不用賦值,不用的時候它被視為無效的元素
stack->head.next = null;
}void linkstackprintchar(linkstack* stack, const char* msg)
printf(" 棧底");
}linknode* createnode(linkstacktype value)
void destroynode(linknode* node)
void linkstackpush(linkstack* stack, linkstacktype value)
linknode* newnode = createnode(value);
newnode->next = stack->head.next;
stack->head.next = newnode;
}void linkstackpop(linkstack* stack)
linknode* to_delete = stack->head.next;
stack->head.next = to_delete->next;
destroynode(to_delete);
}int linkstacktop(linkstack* stack, linkstacktype* value)
if (stack->head.next == 0)
*value = stack->head.next->data;
return 1;
test.c
#include "linkstack.h"
#define test_header printf("\n***************===%s***************===\n",__function__);
void testinit()
void testpush()
void testpop()
void testtop()
int main()
單向不帶頭結點不帶環的鍊錶實現
鍊錶有很多種類,單向,雙向,不帶頭,帶頭,不帶環,帶環,結合起來一共可以有八種鍊錶形式 今天我們來實現一種名字叫 單向不帶頭不帶環的鍊錶 下面就是每一部分的 實現 首先我們要做的就是函式的宣告,結構體的定義,標頭檔案的引用 pragma once define header printf n s n...
雙向帶環帶頭節點的鍊錶
建立乙個雙向鍊錶的節點 class listnode 關於頭插 如何將鍊錶列印出來 public void display system.out.println system.out.println 反向 system.out.print for listnode cur head.prev cur...
實驗2 不帶頭節點的單鏈表
編寫函式slnklist delx linklist head,datatype x 刪除不帶頭結點單鏈表head中第乙個值為x 的結點。並構造測試用例進行測試。include slnklist.h 請將本函式補充完整,並進行測試 linklist delx linklist head,dataty...