zoukankan      html  css  js  c++  java
  • c语言实现队列

    1队列
      元素一个一个进入队列中,最先进入的最先出来,如同排队买火车票,先进的先出


      a.头文件 queuelisth.h
    C/C++ code
    typedef struct NODE { struct NODE *link; char *name; }Node; /** * 创建新节点 */ Node* create_node(); /** * 打印节点所带数据 */ void printf_node(Node *head); /** * 进入队列 */ void inqueue(char *name); /** * 出队列 */ void outqueue(); /** * 队列是否为空 */ int is_empty();


    b. 具体实现 queuelist.c
    C/C++ code
    /** * author:srgzyq * email:srgzyq@gmail.com */ #include "queuelisth.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #define NAME_LEN 10 static Node *head; Node* create_node() { Node *new = (Node *)malloc(sizeof(Node)); if(new == NULL) return new; char *name = (char *)calloc(NAME_LEN,sizeof(char)); if(!name) { free((Node *)new); return NULL; } new->name = name; return new; } void printf_node(Node *node) { printf("queue: %s\n",node->name); } void inqueue(char *name) { Node *new = create_node(); new->name = name; /** * 队列为空 当前节点为头节点 */ if(head == NULL) { head = new; printf("frist : %s\n",head->name); return; } Node *frist = head; while(head->link != NULL) head = head->link; /** * 放入到队尾 */ head->link = new; head = frist; printf("in queue %s\n",name); } void outqueue() { Node *curNode = head; printf_node(curNode); head = head->link; free(curNode); } int is_empty() { return head == NULL; }



    c.测试代码 queuelisttest.c
    C/C++ code
    #include <stdio.h> #include <stdlib.h> #include <string.h> #define ARR_LEN 5 char data_arr[][10] = {"wangbo","raodie","niba","bobo","pengdui"}; int main() { int index; for(index = 0;index < ARR_LEN; index++) inqueue(data_arr[index]); while(!is_empty()) outqueue(); return EXIT_SUCCESS; }


    编译输出:
    gcc -o2 -o queuelisttest queuelist.c queuelisttest.c  

    ./queuelisttest  

    frist : wangbo
    in queue raodie
    in queue niba
    in queue bobo
    in queue pengdui
    queue: wangbo
    queue: raodie
    queue: niba
    queue: bobo
    queue: pengdui

  • 相关阅读:
    C# is运算符
    C# unchecked运算符
    C#程序设计入门经典之C#的基本语法
    C# 数据类型
    C# 变量与常量
    C# 操作符与表达式
    关于TeeChart使用我会持续更新
    oracle查看表中否存在某字段,数据库是否存在某张表
    tchart
    ultragrid
  • 原文地址:https://www.cnblogs.com/zzxap/p/2175656.html
Copyright © 2011-2022 走看看