9.6+9.7
2023-12-19 03:38:35
#include<stdio.h>
#include<stdlib.h>
//创建一个链表
typedef struct node{
int num;
struct node *next;
}node;
//创建一个头节点
node *create(int n)
{
node* head,*p,*q;
head = (node*)malloc(sizeof(node));
head->num=0;
head->next= NULL;
p=head;
//创建数据为1~n的节点
for(int i=0;i<n;i++){
q= (node*)malloc(sizeof(node));
q->num=i;
p->next=q;
p=q;
}
p->next=NULL;
return head;
}
//插入节点
void insert(node* p,int n){
//创建节点
node *charu =(node*)malloc(sizeof(node));
charu->num=n;
//链接
charu->next=p->next;
p->next=charu;
}
//打印链表的数据
void printNode(node* head)
{
node *p=head->next;
while (p!= NULL){
printf("node: %d\n",p->num);
p=p->next;
}
}
//删除指定数据
void del(node* head,int val ){
node* prev =head;//记录一个前驱
node *p=head->next;//从第一个位置开始遍历
while(p!=NULL){
if(p->num==val){
prev->next=p->next;
free(p);
break;
}
else{
prev=p;
p=p->next;
}
}
}
int main(){
int n;
node* head=create(10);
printf("当前链表的所有节点:\n");
printNode(head);
printf("请输入需要插入的结点编号:\n");
scanf("%d",&n);
insert(head,n);
printf("插入之后的链表的节点:\n");
printNode(head);
printf("请输入需要删除的结点编号:\n");
scanf("%d",&n);
del(head,n);
//删除之后的链表的节点
printf("删除之后的链表的节点:\n");
printNode(head);
return 0;
}
文章来源:https://blog.csdn.net/becomeyee/article/details/135073038
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!