数据结构之单链表的查找
来源:互联网 发布:数据压缩算法的程序 编辑:程序博客网 时间:2024/05/18 02:27
唉。。小白一只,链表的按值查找一直运行错误,希望看到的大佬解惑……
#include <stdio.h>#include <stdlib.h>#include <windows.h>typedef struct singleList {int data;singleList *next;}linklist1;//带头结点的尾插法建表linklist1 *creatByEnd2() {char ch;linklist1 *head, *r;linklist1 *s;head = (linklist1 *)malloc(sizeof(linklist1));r = head;printf("输入各结点数值");ch = getchar();while (ch != '#') {s = (linklist1 *)malloc(sizeof(linklist1));s->data = ch;r->next = s; //设置当前尾结点的后继为s !!注意:r->next==(*r).next,是r所指向的结点r = s; //尾指针指向s r=s,是指针ch = getchar();}r->next = NULL;return head->next; //运行时发现若返回表头指针,则头结点的值被随机分配,所以改为返回头指针的后继//即从开始结点开始打印}//按序号查找linklist1 *getByPos(linklist1 *head, int pos) {linklist1 *p;p = head;int i = 0;while ((p->next != NULL) && (i < pos)) {p = p->next;i++;}if (i == pos) return p;else return NULL;}//按值查找linklist1 *getByData(linklist1 *head, int d) {linklist1 *p;p = head->next;while ((p != NULL)&&(p->data) != d) p = p->next;return p;}void showList1(linklist1 *head) {linklist1 *p;int pos;printf("请输入要查找的序号: ");scanf_s("%d", &pos);p = getByPos(head, pos);if (p != NULL) printf("查找到该序号的结点值为:%c", p->data); //注意序号从0开始elseprintf("未查找到该序号!");}void showList2(linklist1 *head) {linklist1 *p;int d;printf("请输入要查找的值:");scanf_s("%d", &d);p = getByData(head, d);if (p!= NULL)printf("查找到该值"); elseprintf("未查找到该值!");}void main(){linklist1 *p, *head;head = creatByEnd2();//showList1(head);showList2(head);Sleep(1000);}
阅读全文
0 0
- 数据结构之单链表的查找
- 数据结构查找之-单链表的基本操作
- 数据结构单链表的查找
- 数据结构之查找算法的实现
- 数据结构之简单的查找算法
- 数据结构 -- 查找之 二分法查找
- 数据结构(三)之单链表反向查找
- 数据结构(三)之单链表反向查找
- 数据结构之查找
- 数据结构之查找
- 数据结构之查找
- 数据结构之折半查找
- 数据结构之“查找”-0
- 数据结构之查找算法
- 数据结构笔记之查找
- 数据结构之查找
- 数据结构之查找
- 数据结构之查找<一>
- StringBuffer和StringBuilder的区别
- spring security rember me
- APK反编译-[Android_YangKe]
- 【单调栈】51Nod 1423 最大二“货”
- golang CI 入门
- 数据结构之单链表的查找
- Python3.5+PyQt5.6环境搭建
- FFMPEG Qt视频播放器之SDL的使用
- 一碗“毒”鸡汤-[Android_YangKe]
- Java的IO流--DataInputStream和DateOutputStream
- 将wordpress同步到csdn
- 6.0 运行时权限解析~2-[Android_YangKe]
- 拓展KMP算法
- 编译原理 LR分析(主要是LR(0)分析)