单向链表队列

原创 2018年04月17日 10:44:38
//链表队列
#include<iostream>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
using namespace std;
typedef struct Student
{
    int num;
    char name[100];
    struct Student *next;
}Liststudent;
Liststudent * creat(int n)
{
    Student *p,*head,*q;
    head=(Liststudent *)malloc(sizeof(Liststudent));
    head->next=NULL;
    q=head;
    int i;
    for(i=0;i<n;i++)
    {
        p=(Liststudent *)malloc(sizeof(Liststudent));
        int a;char s[100];
        cout<<"姓名:";cin>>a;
        cout<<"学号:";cin>>s;
        strcpy(p->name,s);
        p->num=a;
        q->next=p;
        q=p;
    }
    q->next=NULL;
    return head;

}

//打印链表

Liststudent * pop(Liststudent *p)

{
    Liststudent *h;
    h=p->next;
    while(h!=NULL)
    {
        cout<<"姓名:";cout<<h->num;
        cout<<"学号:";cout<<h->name;
        h=h->next;
    }

}

//删除节点

Liststudent * del(Liststudent *p,int n)
{
    Liststudent *h;
    for(int i=0;i<n-1;i++)
    {
        p=p->next;
    }
    h=p->next;
    p->next=h->next;

}

//增加节点

Liststudent * ins(Liststudent *p,int n,int num,char s[])
{
    Liststudent *h;
    for(int i=0;i<n-1;i++)
    {
        p=p->next;
    }
    h=(Liststudent *)malloc(sizeof(Liststudent));
    strcpy(h->name,s);
    h->num=num;
    h->next=p->next;
    p->next=h;

}

//查询节点

Liststudent *search(Liststudent *p,int n)
{
    int i;
    for(i=0;i<n-1;i++)
    {
        p=p->next;
    }
    cout<<"学生名字:"<<p->name;
    cout<<"学生学号:"<<p->num;
}
int main()
{
    Liststudent *p;
    int n,i;
    int num;
    char s[100];
    while(i)
    {
        cout<<"1"<<"请输入学生信息"<<endl;
        cout<<"2"<<"删除学生信息"<<endl;
        cout<<"3"<<"增加学生信息"<<endl;
        cout<<"4"<<"查询学生信息"<<endl;
        cout<<"5"<<"打印所有学生信息"<<endl;
        cout<<"0"<<"退出该程序"<<endl;
        cout<<"您要操作的对象序号为:"<<endl;cin>>i;
        switch(i)
        {
            case 1:
                cout<<"学生总人数为:"<<endl;cin>>n;
                p=creat(n);
                pop(p);
                cout<<endl;
                break;
            case 2:
                cout<<"所要删除学生的位置为:"<<endl;
                cin>>i;
                del(p,i);
                pop(p);
                cout<<endl;
                break;
            case 3:
                cout<<"所要增加的学生位置为:"<<endl;
                cin>>i;
                cout<<"增加的学生信息"<<endl;
                cout<<"姓名:"<<endl;
                cin>>s;
                cout<<"学号:"<<endl;
                cin>>num;
                ins(p,i,num,s);
                pop(p);
                cout<<endl;
                break;
            case 4:
                cout<<"所要查询的学生位置为:"<<endl;
                cin>>i;
                search(p,i);
                cout<<endl;
                break;
            case 5:
                cout<<"所有学生信息为:"<<endl;
                pop(p);
                cout<<endl;
                break;
            case 0:
                return 0;
        }


    }
}

Python算法实战视频课程--队列的应用

-
  • 1970年01月01日 08:00

作业8--队列及其应用

2-1 为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是? (1分) ...
  • sususuyesylvia
  • sususuyesylvia
  • 2017-12-19 17:48:38
  • 374

Java中队列的实现(2)-使用单向链表以及实现

队列(Queue):是另一种被限制过的线性表,它是固定一端来插入数据元素,另一端只删除元素,也就是说队列中的元素移动是固定的,就像超市收银台一样,一边是进的,一边是出的,而且是先进入的首先获得服务的。...
  • daguairen
  • daguairen
  • 2016-10-06 19:50:00
  • 1377

php中的单项链表与双向链表

(一)什么是链表? 链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序排列,通过改变数组大小实现。而链表不是用顺序实现的,用指针实现,在内存中不连续。意思...
  • a5582ddff
  • a5582ddff
  • 2017-09-01 10:35:23
  • 478

如何使用Glib工具集管理C数据

  • 2012年02月09日 15:58
  • 373KB
  • 下载

Glib库常用数据结构

  • 2012年02月09日 16:01
  • 156KB
  • 下载

C#单向链表C#单向链表C#单向链表

  • 2010年07月12日 05:25
  • 195KB
  • 下载

STL系列之queue 单向队列解析

queue单向队列与栈有点类似,一个是在同一端存取数据,另一个是在一端存入数据,另一端取出数据。单向队列中的数据是先进先出(First In First Out,FIFO)。在STL中,单向队列也...
  • u012908515
  • u012908515
  • 2016-06-03 10:04:51
  • 741

单向链表的实现 c语言

  • 2009年03月11日 21:17
  • 176KB
  • 下载

著名国画家金士焯

,中国著名画家金士焯       金士焯(原名 金维久),号:大觉居士, 出生于安徽灵璧。1999年毕业于中央美术学院国画系山水专业,获学士学位。2008年,中央美院中国画学院当代中国画研究生班毕业...
  • junguo68
  • junguo68
  • 2012-03-02 13:46:08
  • 410
收藏助手
不良信息举报
您举报文章:单向链表队列
举报原因:
原因补充:

(最多只允许输入30个字)