队列链表
This commit is contained in:
parent
649a6a2f44
commit
83bceae10a
64
c/code/data_struct/queue_link.c
Normal file
64
c/code/data_struct/queue_link.c
Normal file
@ -0,0 +1,64 @@
|
||||
#include <stdio.h>
|
||||
#include <malloc.h>
|
||||
|
||||
struct Link_queue{
|
||||
int content;
|
||||
struct Link_queue* _last;
|
||||
};
|
||||
|
||||
int In_queue(struct Link_queue **_head, struct Link_queue **_tail){
|
||||
int content;
|
||||
printf ("请输入要添加的内容:");
|
||||
scanf_s ("%d",&content);
|
||||
struct Link_queue *_new_node = ( struct Link_queue * ) malloc(sizeof(struct Link_queue ));
|
||||
_new_node->content = content;
|
||||
if(*_tail == NULL){
|
||||
_new_node->_last = NULL ;
|
||||
*_tail = _new_node;
|
||||
*_head = *_tail;
|
||||
}
|
||||
else{
|
||||
struct Link_queue *_temp_node = *_tail;
|
||||
*_tail = _new_node;
|
||||
_temp_node ->_last = *_tail;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
int Out_queue(struct Link_queue **_head, struct Link_queue **_tail){
|
||||
if(*_head == NULL){
|
||||
printf ("没有元素\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
struct Link_queue*temp = *_head ;
|
||||
printf ("元素:%d\n",temp ->content);
|
||||
|
||||
*_head = temp->_last;
|
||||
if (*_head == NULL){
|
||||
*_tail =NULL;
|
||||
return true;
|
||||
}
|
||||
|
||||
free(temp);
|
||||
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
struct Link_queue *_head=NULL,*_tail=NULL;
|
||||
while ( true){
|
||||
int pick;
|
||||
printf ("1.入队\n");
|
||||
printf ("2.出队\n");
|
||||
printf (("请输入:"));
|
||||
scanf_s ("%d",&pick);
|
||||
if(pick==1){
|
||||
In_queue (&_head,&_tail);
|
||||
}
|
||||
else if(pick==2){
|
||||
Out_queue (&_head,&_tail);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user