数据结构之单链表(尾插法)查找、插入和删除
来源:互联网 发布:最新易语言dnf辅助源码 编辑:程序博客网 时间:2024/06/06 14:03
这一次的难度主要体现在长,常常的代码让人望而生畏,不过,只要理解清楚了查找、插入和删除就好办了
代码
#include<stdio.h>#include<malloc.h>typedef struct node{ int data; struct node*next;}node;node*creat(){ node*head,*q,*p; char ch; int a; head=(node*)malloc(sizeof(node)); q=head; ch='*'; puts("单链表尾插法,?结束"); while(ch!='?') { scanf("%d",&a); p=(node*)malloc(sizeof(node)); p->data=a; q->next=p; q=p; ch=getchar(); } q->next=NULL; return(head);}node*find(node*head,int x){ node*p; p=head->next; while((p!=NULL)&&(p->data!=x)) p=p->next; return p;}void insert(node*p,int x){ node*q; q=(node*)malloc(sizeof(node)); q->data=x; q->next=p->next; p->next=q;}void del(node*head,int x){ node*p,*q; q=head; p=q->next; while((p!=NULL)&&(p->data!=x)) { q=p; p=p->next; } if(p==NULL) { printf("error\n"); } else{ q->next=p->next; free(p); }}int main(){ node*a,*b,*c; int x,y; a=creat(); printf("you want to find: ");scanf("%d",&x); b=a; b=find(a,x); if(b!=NULL) printf("\nfind the value:%d",b->data); else { printf("error"); return -1; } printf("\ninput be inserted value: ");scanf("%d",&y); printf("\ninsert the %d `s next",x); insert(b,y); c=a; printf("\nprint the list\n"); while(a->next!=NULL) { a=a->next; printf("%d ",a->data); } printf("\nyou want to del:");scanf("%d",&x); del(c,x); c=c->next; printf("the new list:\n"); while(c!=NULL) { printf("%d ",c->data); c=c->next; } return 0;}
总结
这一次感觉还是收获挺大的,主要是意识到指针是真的是个好东西啊,随随便便就可以指向一个地址,好东西。查找、插入和删除对于单链表来说比较简单,就不介绍了,代码也相对简单,就是臃肿了点。
1 0
- 数据结构之单链表(尾插法)查找、插入和删除
- 【数据结构】单链表(一)单链表的定义,插入,删除和查找操作
- 数据结构单链表实现插入删除查找
- 数据结构之链表操作,创建,插入,删除,查找。
- 数据结构学习(三)——单链表的操作之查找、删除、插入。
- 数据结构之简单链表(头部插入数据,查找,删除指定数据)
- 数据结构线性表(二)之单链表读取、插入、删除
- 二叉树的建立,删除,查找,插入,输出(数据结构)
- 【数据结构树表的查找】二叉排序树详解和代码(生成、插入、查找、最大值、最小值、删除、中序遍历、销毁)
- 数据结构与算法分析--二叉排序树(二叉查找树,二叉搜索树)的查找、插入和删除操作
- 数据结构:头插法、尾插法创建单链表,求链表长度、查找、插入、删除、合并
- C/C++学习(七)单链表的头插法,尾插法,元素插入、删除和查找 .
- 数据结构 二叉排序树的创建,查找,插入,删除
- 重温数据结构:二叉排序树的查找、插入、删除
- 数据结构之单链表——带有节点的单链表的创建、插入和删除(C/C++)
- 每天一点数据结构之二叉树的查找和删除
- C语言之数据结构的顺序单链表创建,插入和删除操作
- 数据结构与算法分析之单链表的建立,插入和删除操作。
- Ubuntu16.04安装tensorflow
- ADB调试常用命令
- doget()与dopost的区别
- Biker's Trip Odometer
- Nginx 安装配置
- 数据结构之单链表(尾插法)查找、插入和删除
- 浅谈单点登录SSO
- 51Nod
- Jquery往网页插入数据遇到数据出现重复的问题
- System Verilog视频学习笔记(10)- Inter-Thread Communication
- Hadoop日志聚合和jobhistoryserver配置
- 前端调试使用jquery 库
- 让MySQL支持中文
- 谈谈 Object.prototype.toString 。