单向链表的创建 输入 输出

来源:互联网 发布:mac什么游戏好玩 编辑:程序博客网 时间:2024/05/17 23:37
//问题描述:创建一个单链表,输入,并输出链表值。#include<iostream>#include<cmath>using namespace std;#define NULL 0#define LEN sizeof(struct student)struct student{    long num;    float score;    struct student *next;};struct student*creat()//建立链表结构指针函数定义{    struct student *head,*p1,*p2;    int n=0;      p1=p2=(struct student*)malloc(LEN);//开辟动态储存空间,并将其地址赋给p1,p2    cin>>p1->num;cin>>p1->score;//往p1指向的空间结点填装数据    head=NULL;//头指针为空    while(p1->num!=0)    {        n=n+1;//以此来判断是第几个结点        if(n==1)            head=p1;        else            p2->next=p1;   //将p1的值赋给p2->next,使p2->next指向p1所指的结点,此时p2还在前一个结点        p2=p1;            //将p1的值赋给p2,移动指针p2,使p2指向p1所指的结点        p1=(struct student*)malloc(LEN); //继续开辟空间,将其地址赋给p1        cin>>p1->num;cin>>p1->score;//往新开辟的结点填装数据    }    p2->next=NULL;//将最后一个结点的指针域制空    return(head);//返回头指针}void print(student *head){while(head){cout<<head->num<<" "<<head->score<<" ";head=head->next;}}void main(){student *stu=creat();print(stu);}
#include<iostream>#include<cmath>using namespace std;struct student{    int num;    char name[15];    struct student *next;};int main(){    struct student a={1,"lihua"},b={2,"zhangjie"},c={3,"cuisun"};    struct student *head,*p;    head=&a;    a.next=&b;    b.next=&c;    c.next=NULL;    for(p=head;p!=NULL;p=p->next)cout<<p->num<<" "<<p->name<<" ";cout<<endl;    return 0;}


0 0
原创粉丝点击