zoukankan      html  css  js  c++  java
  • 链队列的初始化,建立,插入,查找,删除。

    --

    代码
    
     
    
    ////////////////////////////////////////////
    //链队列的初始化,建立,插入,查找,删除。//
    //Author:Wang Yong                            //    
    //Date:    2010.8.19                            //
    ////////////////////////////////////////////
    
    
    
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef int ElemType;
    
    //////////////////////////////////////////
    
    //定义队列结点类型
    
    typedef struct Qnode
    {
        ElemType data;
        struct Qnode *next;
    } Qnode;
    
    ///定义队列结点的头指针,为指针 
    
    typedef struct
    {
        Qnode *front;
        Qnode *rear;
    }LQueue,*LinkQueue; 
    
    //////////////////////////////////////////
    
    //队列初始化
    
    LinkQueue LinkQueueInit()
    {
        LinkQueue Q;
        Qnode *P;
        Q = (LinkQueue)malloc(sizeof(LQueue));//申请头,尾指针结点 
        P = (Qnode *)malloc(sizeof(Qnode));//申请头结点 
        P->next = NULL;
        Q->front = Q->rear = P;
        return Q; 
    }
    
    /////////////////////////////////////////
    
    //入队
    
    void LinkQueueEnter(LinkQueue Q,ElemType x)
    {
        Qnode *p;
        
        p = (Qnode *)malloc(sizeof(Qnode));//申请新结点 
        p->data = x;
        p->next = NULL;
    
        Q->rear->next = p;
        
        Q->rear = p;
    
    } 
    
    /////////////////////////////////////////
    
    //出队
    
    ElemType LinkQueueOut(LinkQueue Q)
    {
        ElemType x;
        Qnode *p;
        if(Q->front != Q->rear)
        {
            p = Q->front->next;;
            x = p->data;
            Q->front->next = p->next;//移动头指针 
            free(p);
            if(Q->front->next == NULL)//最后一个元素出队后,队空,修改队尾指针 
                Q->rear = Q->front;
        }
        else 
            return  0;
        return x;
    } 
    int main()
    {
        LinkQueue lqueue;
        lqueue = LinkQueueInit();
        ElemType x;
        printf("请输入入队列的元素:");
        while(scanf("%d",&x) != EOF)
        {
            LinkQueueEnter(lqueue,x);
        }
        Qnode *p;
        
        for(p = lqueue->front->next; p != lqueue->rear->next; p = p->next )
            printf("%d ",p->data);
        printf("出队列的结果为:");
        while(lqueue->front!= lqueue->rear)
        {
            
            printf("%d ",LinkQueueOut(lqueue));
        }
        
        return 0;
    }

    --

  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/Ph-one/p/6889841.html
Copyright © 2011-2022 走看看