数据结构队列
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
typedef struct Node {
int data;
Node *next;
}node;
typedef struct SeqQueue {
Node* front;
Node* rear;
}SQ;
void init(SQ* plist){
plist->front = (node*)malloc(sizeof(node));
plist->front->next = NULL;
plist->rear = plist->front;
}
void input(SQ* plist,int e){
node* newnode = (node*)malloc(sizeof(node));
newnode->data = e;
newnode->next = NULL;
plist->rear->next = newnode;
plist->rear = newnode;
}
void output(SQ* plist){
node* newnode = (node*)malloc(sizeof(node));
newnode = plist->front;
newnode = newnode->next;
plist->front = newnode;
}
void viewer(SQ* plist){
node* newnode = (node*)malloc(sizeof(node));
newnode = plist->front->next;
while(newnode != NULL){
printf("%d\n",newnode->data);
newnode = newnode->next;
}
printf("\n\n");
}
int main(int argc,char** argv) {
system("color 1e");
int select,data;
SQ* newplist = (SQ*)malloc(sizeof(SQ));
init(newplist);
while (1)
{
printf("1.入队\n");
printf("2.出队\n");
printf("3.遍历队列成员\n");
printf("0.退出\n\n");
printf("\n\n请输入你要选择的功能\n\n");
printf("您选择的功能为:");
scanf("%d", &select);
switch (select)
{
case 1:
printf("\n请输入需要入队的数字:\n");
scanf("%d", &data);
input(newplist,data);
break;
case 2: output(newplist);
break;
case 3: viewer(newplist);
break;
case 0:
printf("\n程序已退出\n");
exit(1);
break;
default:
printf("\n输入错误!\n请重新输入\n\n\n");
break;
}
}
}
#include<stdlib.h>
#include<windows.h>
typedef struct Node {
int data;
Node *next;
}node;
typedef struct SeqQueue {
Node* front;
Node* rear;
}SQ;
void init(SQ* plist){
plist->front = (node*)malloc(sizeof(node));
plist->front->next = NULL;
plist->rear = plist->front;
}
void input(SQ* plist,int e){
node* newnode = (node*)malloc(sizeof(node));
newnode->data = e;
newnode->next = NULL;
plist->rear->next = newnode;
plist->rear = newnode;
}
void output(SQ* plist){
node* newnode = (node*)malloc(sizeof(node));
newnode = plist->front;
newnode = newnode->next;
plist->front = newnode;
}
void viewer(SQ* plist){
node* newnode = (node*)malloc(sizeof(node));
newnode = plist->front->next;
while(newnode != NULL){
printf("%d\n",newnode->data);
newnode = newnode->next;
}
printf("\n\n");
}
int main(int argc,char** argv) {
system("color 1e");
int select,data;
SQ* newplist = (SQ*)malloc(sizeof(SQ));
init(newplist);
while (1)
{
printf("1.入队\n");
printf("2.出队\n");
printf("3.遍历队列成员\n");
printf("0.退出\n\n");
printf("\n\n请输入你要选择的功能\n\n");
printf("您选择的功能为:");
scanf("%d", &select);
switch (select)
{
case 1:
printf("\n请输入需要入队的数字:\n");
scanf("%d", &data);
input(newplist,data);
break;
case 2: output(newplist);
break;
case 3: viewer(newplist);
break;
case 0:
printf("\n程序已退出\n");
exit(1);
break;
default:
printf("\n输入错误!\n请重新输入\n\n\n");
break;
}
}
}