#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 定義...