编写查找一个单链表特定元素的程序
2015-04-28 22:44
211 查看
\quad\quad我们分成递归和非递归两种方法来实现。
头文件定义如下
链表定义和操作以及主函数如下
头文件定义如下
#ifndef search_H_ #define search_H_ struct listnode; typedef struct listnode *List; typedef struct listnode *Position; List Insert(int x ,List l); void Traverse(List l); List Search_recursion(int x,List l); List search_iteration(int x,List l); #endif // search_H_
链表定义和操作以及主函数如下
#include <stdio.h> #include <stdlib.h> #include "main.h" struct listnode { int element; Position next; }; //Insert List Insert(int x,List l) { Position p_tem; Position p_insert=malloc(sizeof(struct listnode)); p_insert->element=x; p_insert->next=NULL; if(l==NULL) return p_insert; else { p_tem=l; while(p_tem->next!=NULL) p_tem=p_tem->next; p_tem->next=p_insert; return l; } } //Traverse void Traverse(List l) { Position p_tem=l; if(p_tem==NULL) printf("NULL\n"); while(p_tem!=NULL) { printf("%d ",p_tem->element); p_tem=p_tem->next; } } Position Search_recursion(int x,List l) { Position p=l; if(p==NULL) return NULL; if(p->element==x) return p; if(p!=NULL&&p->element!=x) return Search_recursion(x,p->next);//递归的过程,迭代的计算过程 } Position Search_iteration(int x,List l) { Position p_tem=l; while(p_tem!=NULL) if(p_tem->element!=x) p_tem=p_tem->next; else return p_tem; return NULL; } int main() { int i=0; List L=NULL; for(;i<20;i++) { L=Insert(i,L); } Traverse(L); printf("%p\n",Search_iteration(3,L)); printf("%p\n",Search_iteration(20,L)); printf("%p\n",Search_recursion(3,L)); printf("%p\n",Search_recursion(20,L)); return 0; }
相关文章推荐
- 编写查找一个单链表特定元素的程序。分别使用递归和非递归方法实现,并比较它们的运行时间。
- 【练习题】编写打印出一个单链表的所有元素的程序【链表】
- 编写打印出一个单链表的所有元素的程序
- 编写打印一个单链表所有元素的程序
- 编写程序输入一个n*n的矩阵,求出两条对角线元素值之和
- 编写程序,生成一种贯穿10*10字符数组(初始时全为字符'.')的“随机步法”。程序必须随机地从一个元素“走到”另一个元素,每次都向上、向下、向左或向右移动一个元素位置
- python程序2(递归查找某一个文件夹下所有的文件是否含有某个特定的字符串,并打印该文件名)
- 编写一个程序,实现单链表的各种基本运算
- 编写一个程序,输入两个包含 5 个元素的数组,先将两个数组升序排序,然 后将这两个数组合并成一个升序数组(合并排序)。
- 编写一个JAVA程序,创建指定长度的 int 型数组,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组
- 编写一个程序,查找C语言中的基本语法错误,如圆括号、方括号、花括号不配对等,正确处理引号与注释
- 编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,基数下标的元素不变
- 编写一个使用数组类模板Array对数组进行排序、求最大值和求元素和的程序,并采用相关数据进行测试。
- 编写一个Python程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
- 编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的值为5,4,3,2,1。
- 8.9 编写函数打开文件用于输入,将文件内容读入 string 类型的 vector 容器,每一行存储为该容器对象 的一个元素。8.10 重写上面的程序,把文件中的每个单词存储为 容器的一个元素
- 编写程序,查找并删除forward_list<int>中的奇数元素
- 编写一个通用程序,将二维数组含有最大元素的列与第0列元素对调
- 利用模板类编写一个程序,实现双向链表的插入、删除、查找、显示的功能。
- 编写一段程序,将含有整数元素的vector对象复制给一个整形数组;