您的位置:首页 > 理论基础 > 数据结构算法

数据结构示例之查看链表元素是否存在

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);
}
}


运行结果如下图所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构
相关文章推荐