双向链表的查找
来源:互联网 发布:java web爬虫框架 编辑:程序博客网 时间:2024/05/21 21:49
#include <stdio.h>#include <malloc.h>typedef struct linknode//定义双向链表{ int data; linknode *prior,*next;} Node,*Linklist;Linklist Createlist(int n);//建立双向链表int Find(Linklist L,int x);//在链表中查找值为x的下标void Showlist(Linklist L);//输出双向链表int main(void){ int n; scanf("%d",&n); Linklist L1=Createlist(n); Showlist(L1); printf("%d\n",Find(L1,5)); return 0;}Linklist Createlist(int n)//建立双向链表{ Linklist head=(Linklist)malloc(sizeof(Node));//申请头结点 Node *p,*e; int x; p=head;//让p指向头结点 for(int i=0; i<n; i++) { e=(Linklist)malloc(sizeof(Node));//申请新的节点 scanf("%d",&x); e->data=x; p->next=e;//前一个节点的后继指向新的节点 e->prior=p;//新节点的前驱指向上一个节点 p=e;//始终让p指向当前节点 } p->next=NULL;//最后一个节点的后继为空 head=head->next;//头结点为空节点,所以向后移动一个 head->prior=NULL;//头结点的前驱为空 return head;//返回头结点}void Showlist(Linklist L)//输出双向链表{ while(L) { printf("%d ",L->data); L=L->next; } printf("\n");}int Find(Linklist L,int x){ int i = 1; while(L != NULL && L->data != x )//寻找值为x的元素**注意这里循环的条件不能写反。原因,当L == NULL 时候 L->data会出错 { i++; L= L->next; } if(L == NULL) //如果没找到返回-1 return -1; else return i; //如果找到返回i}
阅读全文
0 0
- 双向链表的查找
- 双向链表的查找
- 双向链表的查找节点。
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 二元查找树转变成排序的双向链表
- 二元查找树转变成排序的双向链表
- 二元查找树转变成排序的双向链表
- 1.二元查找树转变成排序的双向链表
- 将二元查找树转变为排序的双向链表
- 把二元查找树转变成排序的双向链表
- 二叉查找树转变成有序的双向链表
- .把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- 把二元查找树转变成排序的双向链表
- mfc自绘相关
- tar 压缩 解压
- Roman to Integer
- 如何应对SparkSQL DataFrame保存到hdfs时出现的过多小文件问题
- 你为什么会浮躁?
- 双向链表的查找
- javabean的内省技术详解
- 单链表的建立以及使用
- SpringMVC源码剖析(五)-消息转换器HttpMessageConverter
- Ubuntu16.04 开热点
- JS实现点击按钮图片左右切换、点击图片按钮出现下拉菜单
- Dubbo之——服务只订阅(开发调试)
- 程序猿
- POJ 1064 Cable master——二分 + 精度控制