0407pratice ‘linkqueue‘

本文介绍了如何在C语言中使用结构体和联合体实现一个简单的链表队列(Linkqueue),包括创建队列、插入元素、删除元素以及显示队列内容的方法。
摘要由CSDN通过智能技术生成

.h:

#ifndef _linkque
#define _linkque
typedef int datatype;
type struct node
{
    union{
    datatype text;
    int len;
    }data;
    struct node* next;
}Linkqueue;

typedef struct
{
    Linkqueue* head;
    Linkqueue* rear;
}Lq_hr;

Lq_hr* creat_linkqueue(); 
void insert_linkqueue(Lq_hr* q,datatype num);
datatype delete_linkqueue(Lq_hr* q);
void show_linkqueue(Lq_hr* q);

#endif
                                               

.c:

#include <stdio.h>
#include <stdlib.h>
#include "./linkqueue.h"

Lq_hr* creat_linkqueue()
{
    Lq_hr* q=(Lq_hr*)malloc(sizeof(Lq_hr));
    if(NULL=p)
    {
        printf("failed!\n");
        return;
    }
    q->head=(Linkqueue*)malloc(sizeof(Linkqueue));

    if(NULL=q->head)
    {
        printf("failed!\n");
        return;
    }
    q->head->next=NULL;
    q->rear=q->head;
    return q;
}

void insert_linkqueue(Lq_hr* q,datatype num)
{
    Linkqueue* temp=(Linkqueue*)size(Linkqueue);

    if(NULL=temp)
    {
        printf("failed!\n");
        return;
    }
temp->data.text=num;
temp->next=NULL;
temp->next=q->rear->next;
q->head->data.len++;
return;
}


datatype delete_linkqueue(Lq_hr* q)
{
    if(q->head==q->rear)
    {printf("empty!nothing to delete.\n");
        return (datatype)-1;}
    Linkqueue* temp=q->head->next;
    if(temp==q->rear)
    {
        q->rear=q->head;
    }
    q->head->next=temp->next;
    datatype num=temp->data.text;
    free(temp);
    temp=NULL;
    q->head->data.len--;
    return num;

                                                                         

}

void show_linkqueue(Lq_hr* q)
{
    Linkqueue* p=q->head;
    while(p->next !=NULL)
    {
        p=p->next;
        printf("%d\t",p->data.text);
    }
    putchar(10);
    return;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值