乙個簡單的c語言鏈式結構的棧

2021-09-25 13:39:32 字數 1801 閱讀 6275

#include"head.h"

//建立乙個空的佇列

linkqueue squeue_create()

l->front=(squeue)malloc(sizeof(queues));

if(l->front==null)

l->back=(squeue)malloc(sizeof(queues));

if(l->back==null)

l->front->next=null;

l->back=l->front;

return l;

}//入佇列先進先出,所以使用是頭插法

int squeue_push(linkqueue l, int value)

p->date=value;

while(l->back->next!=null)

l->back->next=p;

p->next=null;

return 0;

}//出佇列 先進先出使用老辦法會使得的最後的指標的變成野指標

int squeue_pop(linkqueue l)

p=l->front;//儲存首位址

s=l->front->next;

value=s->date;

free(p);

p=null;

return value;

}int squeue_empty(linkqueue l)

void squeue_show(linkqueue l)

printf("\n");

}

head.h

#ifndef  __head_h

#define __head_h

#include#include#includetypedef struct queuequeues,*squeue;

typedef struct nodelnode,*linkqueue;

linkqueue squeue_create();

int squeue_push(linkqueue l,int value);

int squeue_pop(linkqueue l);

int squeue_empty(linkqueue l);

void squeue_show(linkqueue l);

#endif

test.c

#include"head.h"

int main(int argc,char *ar**)

squeue_push(l,10);

squeue_push(l,20);

squeue_push(l,30);

squeue_push(l,40);

squeue_push(l,50);

value=squeue_pop(l);

printf("%d\n",value);

squeue_show(l);

return 0;

}

makefile

cc=gcc

cflags=-c -o -wall

obj=list.o test.o

yuxiang:$(obj)

$(cc) -o $@ $^

%*.o:%*.c

$(cc) $(cflags) -o $@ $<

.phony:clean

clean:

rm -rf *.o yuxiang

棧 鏈式結構 C語言

棧 由於是鏈式結構的棧,所以棧的容量基本上可是等於無限。include includetypedef int datatype typedef struct node stack void init stack stack stack 壓棧 void stack push stack stack,d...

鏈式棧 C語言資料結構

棧的鏈式儲存結構 棧的鏈式儲存結構與線性表的鏈式儲存結構相同,是通過由結點構成的單鏈表實現的。為操作方便我們使用無頭結點的單鏈表。此時棧頂為單鏈表的第乙個結點,整個單鏈表為乙個鏈棧。鏈棧的型別定義 typedef struct node linkstack 鏈棧結點型別 top 為棧頂,它唯一地確定...

棧的鏈式儲存結構(C語言實現)

1 include 2 include 3 4 define ok 1 5 define err 2 6 define true 1 7 define false 0 89 typedef int status 定義函式返回的狀態,ok err 10 typedef char datatype 定義...