网站建设费用 计入什么科目还有做网站的必要吗
网站建设费用 计入什么科目,还有做网站的必要吗,网站制作教程切片,办公室装修风格图在C语言中#xff0c;链式队列是一种使用链表实现的队列#xff0c;它具有以下特点#xff1a;
链式队列不需要预先分配固定大小的存储空间#xff0c;可以动态地分配内存以适应不同大小的队列。链式队列可以无限扩展#xff0c;因此不会出现队列满的情况。链式队列的入队…在C语言中链式队列是一种使用链表实现的队列它具有以下特点
链式队列不需要预先分配固定大小的存储空间可以动态地分配内存以适应不同大小的队列。链式队列可以无限扩展因此不会出现队列满的情况。链式队列的入队和出队操作对于链表而言比较灵活不需要移动大量元素 以下是对链式队列的实现和简单使用
#define _CRT_SECURE_NO_WARNINGS
#includestdio.h
#includestring.h
#includestdlib.h
//节点结构体
struct Linknode
{struct Linknode* next;
};
struct LQueue
{struct Linknode pHeader;int m_size;struct Linknode* pTail;//尾节点指针
};
typedef void* linkqueue;
//初始化
linkqueue init_linkqueue()
{struct LQueue* myqueue (struct LQueue*)malloc(sizeof(struct LQueue));if (myqueue NULL){return NULL;}myqueue-pHeader.next NULL;myqueue-m_size 0;myqueue-pTail myqueue-pHeader;return myqueue;
}
//入队尾插
void push_linkqueuq(linkqueue queue,void*data)
{if (queue NULL){return ;}if (data NULL){return;}struct LQueue* myqueue (struct LQueue* )queue;struct Linknode* mynode (struct Linknode* )data;//更改过指针指向myqueue-pTail-next mynode;mynode-next NULL;myqueue-pTail mynode;myqueue-m_size;
}
//出队头删
void pop_linkqueue(linkqueue queue)
{if (queue NULL){return;}struct LQueue* myqueue (struct LQueue*)queue;if (myqueue-m_size 0){return;}if (myqueue-m_size 1){myqueue-pHeader.next NULL;myqueue-pTail myqueue-pHeader;myqueue-m_size--;return;}struct Linknode* pFirst myqueue-pHeader.next;myqueue-pHeader.next pFirst-next;myqueue-m_size--;
}
//返回队头
void* front_linkqueue(linkqueue queue)
{if (queue NULL){return NULL;}struct LQueue* myqueue (struct LQueue*)queue;if (myqueue-m_size 0){return NULL;}return myqueue-pHeader.next;
}
//队尾
void* back_linkqueue(linkqueue queue)
{if (queue NULL){return NULL;}struct LQueue* myqueue (struct LQueue*)queue;if (myqueue-m_size 0){return NULL;}return myqueue-pTail;
}
//大小
int size_linkqueue(linkqueue queue)
{if (queue NULL){return -1;}struct LQueue* myqueue (struct LQueue*)queue;return myqueue-m_size;
}
//判断是否为空
int isEmpty(linkqueue queue)
{if (queue NULL){return -1;}struct LQueue* myqueue (struct LQueue*)queue;if (myqueue-m_size 0){return 1;}return 0;
}
//销毁
void destroy_linkqueue(linkqueue queue)
{if (queue NULL){return;}free(queue); // 释放内存queue NULL; // 将指针置为 NULL
}
struct person
{int* a;char name[64];int age;
};void test01()
{linkqueue myqueue init_linkqueue();struct person p6 { NULL, aaa,18 };struct person p7 { NULL, bbb,123 };struct person p8 { NULL ,ccc,24 };struct person p9 { NULL,ddd,25 };push_linkqueuq(myqueue, p6);push_linkqueuq(myqueue, p7);push_linkqueuq(myqueue, p8);push_linkqueuq(myqueue, p9);printf(大小%d\n, size_linkqueue(myqueue));while (!isEmpty(myqueue)){struct person* p1 (struct person* )front_linkqueue(myqueue);printf(队头名字%s,年龄%d\n, p1-name, p1-age);struct person* p2 (struct person*)back_linkqueue(myqueue);printf(队尾名字%s,年龄%d\n, p2-name, p2-age);printf(-------\n);pop_linkqueue(myqueue);}printf(大小%d\n, size_linkqueue(myqueue));destroy_linkqueue(myqueue);
}
int main()
{test01();return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86931.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!