用C实现链表的初始化,以及在表头插入节点,以及遍历整个列表

  • Post author:
  • Post category:其他


#include <cstdlib>

#include <iostream>

using namespace std;

#define NULL 0

#define LEN sizeof(struct student)//计算结构体的大小

struct student//学生连表结构体

{

long num;

float score;

struct student *next;

};

int n;

struct student *creat(void)//构造链表

{

struct student *head;//定义一个头节点

struct student *p1,*p2;//定义两个结点指针

n=0;

p1=p2=(struct student *)malloc(LEN);//动态分配节点

cin>>p1->num>>p1->score;

//scanf(“%ld,%f”,&p1->num,&p1->score);

head=NULL;

while(p1->num != 0)

{

n=n+1;

if(n == 1)

head = p1;

else

p2->next = p1;

p2 = p1;

p1 = (struct student *)malloc(LEN);

cin>>p1->num>>p1->score;

//scanf(“%ld,%f”,&p1->num,&p1->score);

}

p2->next = NULL;

return(head);

}

struct student *insert_head()

{

struct student *p;

struct student *head=creat();

struct student *next;

cout<<head<<“====”<<endl;

p=(struct student*)malloc(LEN);

cout<<“输入你要插入的数字”<<endl;

cin>>p->num>>p->score;

p->next=head;

head=p;

while(head->next!=NULL){

cout<<head->num<<” “<<head->score<<endl;

head=head->next;

}

return (head);

}

int main()

{

insert_head();

//creat();

cout<<LEN<<endl;

return 0;

}



版权声明:本文为Capten原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。