#include<iostream>#include<stdlib.h>//创建一个结构体来表示链表的结点类型 struct node{int data;struct node *next;};
using namespace std;intmain(){struct node *head,*p,*q,*t;int i, n, a;//输入要存放的数据
cin >> n;//头指针初始化为空
head =NULL;for(int i =1; i <= n; i++){//输入n个数
cin >> a;//动态申请以个空间,用来存放一个结点,并用临时指针p指向这个结点
p =(struct node *)malloc(sizeof(struct node));//将数据存储在当前data域中
p -> data = a;//设置当前结点的后继指针为空,也就是当前的下一个结点为空
p -> next =NULL;if(head ==NULL){//如果这是第一个创建的结点,则将头指针指向这个结点
head = p;}else{//如果不是第一个创建的结点,则将上一个结点的后继指针指向当前结点
q -> next = p;}//当前指针p也只向当前结点
q = p;}//输出链表中所有的数
t = head;while(t !=NULL){
cout << t -> data <<" ";//继续下一个结点
t = t -> next;}return0;}
链表的插入
#include<iostream>#include<stdlib.h>//创建一个结构体来表示链表的结点类型 struct node{int data;struct node *next;};
using namespace std;intmain(){struct node *head,*p,*q,*t;int i, n, a;//输入要存放的数据
cin >> n;//头指针初始化为空
head =NULL;for(int i =1; i <= n; i++){//输入n个数
cin >> a;//动态申请以个空间,用来存放一个结点,并用临时指针p指向这个结点
p =(struct node *)malloc(sizeof(struct node));//将数据存储在当前data域中
p -> data = a;//设置当前结点的后继指针为空,也就是当前的下一个结点为空
p -> next =NULL;if(head ==NULL){//如果这是第一个创建的结点,则将头指针指向这个结点
head = p;}else{//如果不是第一个创建的结点,则将上一个结点的后继指针指向当前结点
q -> next = p;}//当前指针p也只向当前结点
q = p;}//====================== 插入操作 =======================
t = head;
cout <<"请输入要插入的数:"<< endl;
cin >> a;while(t !=NULL){//如果当前结点的下一个结点的值大于待插入的数字,则将数插入 if(t -> next -> data > a){//动态申请一个空间,用来存放新增结点
p =(struct node *)malloc(sizeof(struct node));
p -> data = aS;//新增结点的后继指针指向当前结点的后继指针所指向的结点
p -> next = t -> next;//当前结的后继指针指向新增的结点
t -> next = p;//插入完毕,退出循环 break;}//继续下一个结点
t = t -> next;}//输出链表中所有的数
t = head;while(t !=NULL){
cout << t -> data <<" ";//继续下一个结点
t = t -> next;}return0;}
#include<iostream>#include<stdlib.h>//创建一个结构体来表示链表的结点类型 struct node{ int data; struct node *next;}; using namespace std;int main(){ struct node *head, *p, *q, *t; int i, n, a; //输入要存放的数据 cin >> n; //头指针初始化为空 head = NULL;