单向链表的创建 输入 输出

//问题描述:创建一个单链表,输入,并输出链表值。
#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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值