用C语言实现在一个链表删除指定的一个或多个元素
来源:互联网 发布:淘宝怎么卖东西啊 编辑:程序博客网 时间:2024/06/06 04:21
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}LinkList;
//创建一个链表
LinkList *Creatlist_L(LinkList *L,int n){
LinkList *p,*h;
L=(LinkList*)malloc(sizeof(LinkList));
L->next=NULL;
h=L;
for(int i=0;i<n;i++){
p=(LinkList*)malloc(sizeof(LinkList));
scanf("%d",&p->data);
p->next=h->next;
h->next=p;
}
return L;
}
//删除指定的元素
LinkList *deletenode(LinkList *head,int m){
LinkList *p,*q,*s;
p=head;
q=head->next;
while(q){
if(q->data==m){
p->next=q->next;
s=q;
q=q->next;
free(s);
}else{
p=p->next;
q=q->next;
}
}
return head;
}
//输出链表
void printlist(LinkList *head){
LinkList *p;
p=head->next;
if(!p){
printf("The link is NULL!");
exit(0);
}
while(p){
printf("%d", p->data);
p=p->next;
}
}
int main(){
LinkList *head,*head1;
int n=0,num=0;
printf("请输入链表的长度:");
scanf("%d",&n);
head=Creatlist_L(head,n);
printf("链表创立成功!");
printf("\n");
printf("请输入要输入删除的元素:");
scanf("%d",&num);
printf("\n");
head=deletenode(head,num);
printlist(head);
}
#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}LinkList;
//创建一个链表
LinkList *Creatlist_L(LinkList *L,int n){
LinkList *p,*h;
L=(LinkList*)malloc(sizeof(LinkList));
L->next=NULL;
h=L;
for(int i=0;i<n;i++){
p=(LinkList*)malloc(sizeof(LinkList));
scanf("%d",&p->data);
p->next=h->next;
h->next=p;
}
return L;
}
//删除指定的元素
LinkList *deletenode(LinkList *head,int m){
LinkList *p,*q,*s;
p=head;
q=head->next;
while(q){
if(q->data==m){
p->next=q->next;
s=q;
q=q->next;
free(s);
}else{
p=p->next;
q=q->next;
}
}
return head;
}
//输出链表
void printlist(LinkList *head){
LinkList *p;
p=head->next;
if(!p){
printf("The link is NULL!");
exit(0);
}
while(p){
printf("%d", p->data);
p=p->next;
}
}
int main(){
LinkList *head,*head1;
int n=0,num=0;
printf("请输入链表的长度:");
scanf("%d",&n);
head=Creatlist_L(head,n);
printf("链表创立成功!");
printf("\n");
printf("请输入要输入删除的元素:");
scanf("%d",&num);
printf("\n");
head=deletenode(head,num);
printlist(head);
}
阅读全文
0 0
- 用C语言实现在一个链表删除指定的一个或多个元素
- 实现在一个数组指定位置添加元素和删除元素的功能
- 实现Java删除一个集合的多个元素
- C语言实现单链表的逆转指定个数个元素
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 创建一个链表,插入删除,指定元素
- c删除一个元素
- 在ORACLE中给已有数据的表增加、修改、删除一个字段(或一个列)或者多个字段(或多个列)的问题
- c语言一个链表的实现
- c 语言:一个链表的实现
- 创建一个结点个数为n的链表,删除指定的元素
- C语言 递归地删除一个指定目录下所有指定类型的文件
- c语言:【顺序表】静态顺序表的删除指定位置元素Erase、删除指定元素Remove
- 删除数组中一个或者多个连续的元素
- 一个循环删除数组里的多个元素
- C语言 删除多个相同元素
- 在指定的位置删除一个数
- iOS中C语言的打印一个或多个学生信息
- SkipList 跳表学习
- 关于wdcp的任务计划文件储存位置
- 读java编程思想的一点感触
- javaee
- Android View的onFinishInflate和onSizeChanged生命周期详解
- 用C语言实现在一个链表删除指定的一个或多个元素
- Android 屏蔽系统锁屏的方法
- 线性表再谈之稀疏矩阵+
- Android获取屏幕宽度的4种方法,android4种
- Qt 学习之路 2(86):QML视图代理
- Tomcat装载servlet的三种情况
- 求两个数的最大公约数
- ajax 异步显示分页
- 加密小技术