单链表的插入和删除
#include<iostream>
#include<stdlib.h>#include<cstdlib>
#include<ctime>
struct s
{
int a;
struct s*next;
};
int main()
{
//srand(time(0));//随机数种子的使用但这里没使用
struct s *p,*head,*q;
head=(struct s *)malloc(sizeof(struct s));
head->next=NULL;
for(int i=0;i<10;i++)
{
p=(struct s *)malloc(sizeof(struct s));
p->a=rand();//随机数的使用
p->next=head->next;
head->next=p;
}//创建简单链表
q=(struct s *)malloc(sizeof(struct s));
q->a=12;
q->next=head->next;
head->next=q;
p=head->next;
//创建要插入的链表,插入链表
while(p->next!=NULL)
{
std::cout<<p->a<<" ";
p=p->next;
}
std::cout<<std::endl;
//删除节点,删除刚查入的节点
p=head->next->next;//将指针P移动到刚插入节点的后边
head->next=p;//删除节点
while(p->next!=NULL)
{
std::cout<<p->a<<" ";
p=p->next;
}
return 0;
}