数据结构示例之查看链表元素是否存在
2016-10-30 16:54
344 查看
以下为“查看链表元素是否存在”的简单示例:
1. 用c语言实现的版本
#include<stdio.h>
#include<stdlib.h>
typedef char datatype;
typedef struct node{
datatype data;
struct node *next;
} listnode;
typedef listnode *linklist;
listnode *p;
/* 创建链表,从表头插入新元素 */
linklist createlist(void)
{
char ch;
linklist head;
listnode *p;
head = NULL;/*初始化为空*/
printf("请输入字符序列:\n");
ch = getchar();
while (ch != '\n')
{
p = (listnode*)malloc(sizeof(listnode)); /*分配空间*/
p->data = ch; /* 数据域赋值 */
p->next = head; /* 指定后继指针 */
head = p; /* head指针指定到新插入的结点上 */
ch = getchar();
}
return head;
}
listnode * locatenode(linklist head, char key)
{
listnode * p = head;
while (p && p->data != key)
{
p = p->next;
}
return p;
}
void main()
{
linklist list;
listnode * node;
char key;
list = createlist(); /* 创建链表,从表头插入新元素 */
printf("请输入要查询的元素:\n");
scanf("%c", &key);
node = locatenode(list, key);
if (node)
{
printf("已找到%c\n",node->data);
}
else
{
printf("未能找到%c\n", key);
}
}
运行结果如下图所示:
1. 用c语言实现的版本
#include<stdio.h>
#include<stdlib.h>
typedef char datatype;
typedef struct node{
datatype data;
struct node *next;
} listnode;
typedef listnode *linklist;
listnode *p;
/* 创建链表,从表头插入新元素 */
linklist createlist(void)
{
char ch;
linklist head;
listnode *p;
head = NULL;/*初始化为空*/
printf("请输入字符序列:\n");
ch = getchar();
while (ch != '\n')
{
p = (listnode*)malloc(sizeof(listnode)); /*分配空间*/
p->data = ch; /* 数据域赋值 */
p->next = head; /* 指定后继指针 */
head = p; /* head指针指定到新插入的结点上 */
ch = getchar();
}
return head;
}
listnode * locatenode(linklist head, char key)
{
listnode * p = head;
while (p && p->data != key)
{
p = p->next;
}
return p;
}
void main()
{
linklist list;
listnode * node;
char key;
list = createlist(); /* 创建链表,从表头插入新元素 */
printf("请输入要查询的元素:\n");
scanf("%c", &key);
node = locatenode(list, key);
if (node)
{
printf("已找到%c\n",node->data);
}
else
{
printf("未能找到%c\n", key);
}
}
运行结果如下图所示:
相关文章推荐
- 算法学习之数据结构之链表是否相交,链表是否存在环
- 【学习点滴-数据结构-单链表】 判断单链表是否有环
- sdut.acm 2012级《程序设计基础Ⅱ)》_链表 数据结构实验之链表七:单链表中重复元素的删除
- 山东理工OJ【2122】数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 【1139】数据结构上机测试2-2:单链表操作B (逆序建表+重复元素删除)
- 【学习点滴-数据结构-单链表】交换单链表中任意两个元素
- 数据结构实验之链表七:单链表中重复元素的删除
- 山东理工OJ【2122】数据结构实验之链表七:单链表中重复元素的删除(两种思想)
- 关于jQuery判断元素是否存在的问题示例探讨
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构之单链表取第i个元素的算法
- (总结)数据结构之链表的基本操作说明和示例(待补充)
- JQuery - 用.length属性查看元素是否存在
- 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。
- 关于jQuery判断元素是否存在的问题示例探讨
- Javascript脚本语言简介、查找元素节点、查看是否存在子节点、根节点
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 【1130】数据结构上机测试1:顺序表的应用 (链表的建立于重复元素删除) SDUT