diff --git a/c/code/data_struct/queue_link.c b/c/code/data_struct/queue_link.c new file mode 100644 index 0000000..01033f5 --- /dev/null +++ b/c/code/data_struct/queue_link.c @@ -0,0 +1,64 @@ +#include +#include + +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); + } + } +} \ No newline at end of file