⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch09_17.c

📁 C语言开发入门与编程实践 源码文件
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int add(char*, int);    /* 置入队列数据 */
int get();           /* 取出队列数据 */
int show();          /* 显示队列数据 */

struct student
{
    char name[20];
    int score;
    struct student *next;
};
typedef struct student s_data;

s_data *front =NULL;
s_data *rear = NULL;

int main()
{
    int select, score;
    char name[20];

    do
    {
        printf("(1)存入 (2)取出 (3)显示 (4)离开 => ");
        scanf("%d", &select);
        switch (select)
        {
            case 1:
                printf("姓名 成绩:");
                scanf("%s %d", name, &score);
                add(name, score);
                break;
            case 2:
                get();
                break;
            case 3:
                show();
                break;
        }
    } while (select != 4);

    system("pause");
    return 0;
}


int add(char* name, int score)
{
    s_data *new_data;

    new_data = (s_data*) malloc(sizeof(s_data));  /* 配置内存给新元素 */
    strcpy(new_data->name, name);   /* 设定新元素的数据 */
    new_data->score = score;
    if (rear == NULL)      /* 如果rear为NULL,表示这是第一个元素 */
        front = new_data;
    else
        rear->next = new_data;    /* 将新元素连接至队列尾端 */

    rear = new_data;    /* 将rear指向新元素,这是新的队列尾端 */
    new_data->next = NULL;    /* 新元素之后无其他元素 */
}


int get()
{
    s_data *freeme;
    if (front == NULL)
        puts("队列已空!");
    else
    {
        printf("姓名:%s\t成绩:%d ....取出\n", front->name, front->score);
        freeme = front;    /* 设定将要释放的元素指针 */
        front = front->next;    /* 将队列前端移到下一个元素 */
        free(freeme);    /* 释放所取出的元素的内存 */
    }
}

int show()
{
    s_data *ptr;
    ptr = front;
    if (ptr == NULL)
        puts("队列已空!");
    else
    {
    puts("front -> rear");
        while (ptr != NULL)    /* 由front往rear访问队列 */
        {
            printf("姓名:%s\t成绩:%d\n", ptr->name, ptr->score);
            ptr = ptr->next;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -