简单链表的创建
一、创建链表传进来一个new过的head指针
二、指针在使用前记得new出来
三、遍历输出记得指针后移p=p->next;
#include <iostream>
using namespace std;
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};
node create(node *head)//传进来的是指针head
{
node *p,*tail;
//head=new node;这里初始化没有作用,需要传进来就是初始化过的head
tail=new node;//尾指针没有初始化!!!!造成没有结果
head->next=NULL;
tail=head;
int Data;
cin>>Data;
while(Data!=0)
{
p=new node;
p->data=Data;
p->next=NULL;
tail->next=p;
tail=p;
cin>>Data;
}
}
void print_list(node *head)
{
head=head->next;
while(head)
{
cout<<head->data;
head=head->next;//记得指针后移,不然会无限循环输出第一个元素的值
}
}
int main()
{
node *head;
head=new node;//必须初始化不然会出错,没有输出值结果
create(head);
print_list(head);
}