c语言数据结构-为什么两个查找i和item的返回值p的地址输出都是一样的?

问题描述

为什么两个查找i和item的返回值p的地址输出都是一样的?

int LocItem1(linklist *L,int n,int i){
linklist *q,*p;
int j=0;
if(L->next==NULL)
{
printf("The linklist is emptyn");
return NULL;
}
else if(i>n)
{
printf("i>n is beyoundn");
return NULL;
}
else
{
q=L;
p=L->next;
while(p!=NULL&&j
{
q=p;
p=p->next;
j++;
}
}
if(p==NULL)
{
printf("The node %d is not existn",i);
return NULL;
}
else
return p;
}
int LocItem2(linklist *L,int n,int item){
linklist *p,*q;
if(L->next==NULL)
{
printf("The linklist is emptyn");
return NULL;
}
else
{
q=L;
p=L->next;
while(p!=NULL)
{
if(p->data!=item)
{
q=p;
p=p->next;
}
else
break;
}
}
if(p==NULL)
{
printf("The node %d is not existn",item);
return NULL;
}
else
return p;
}
int main()
{
int n,i,item;
long int k;
linklist *L;
L=Creatlist(L);
Judge(L);
printf("Input nodes :");
scanf("%d",&n);
Input(L,n);
printf("Input i:");
scanf("%d",&i);
k=LocItem1(L,n,i);
printf("The i %d address is %ldn",i,k);
printf("Input item:");
scanf("%d",&item);
k=LocItem2(L,n,item);
printf("The item %d address is %ldn",item,k);
return 0;
}

时间: 2024-10-27 12:54:24

c语言数据结构-为什么两个查找i和item的返回值p的地址输出都是一样的?的相关文章

c语言-数据结构循环队列 为什么执行后的结果是这样,不能正确的输出结果

问题描述 数据结构循环队列 为什么执行后的结果是这样,不能正确的输出结果 #include #include #define OK 1 #define ERROR -1 #define OVERFLOW -2 #define INIT_QUEUE_SIZE 5//当前分配的最大空间 #define QUEUEINCREMENT 10 typedef int Status; typedef float QElemType ; typedef struct { QElemType* base;//初

c语言数据结构问题 代码相似性度量

问题描述 c语言数据结构问题 代码相似性度量 我的思路:对要进行比较的所有代码段进行词法分析,并转化为特定的标记(token)串,自己制定一个转换规则.接着,通过两两比较标记(token)串来确定代码之间的相似性,并由此确定代码之间抄袭的程度. 将这两个代码分别转换为token串后,基于算法RKR-GST( running-karp-rabin greedy-string-tiling)算法思想,循环求取两个标记串中未被匹配部分的最大公共子串,将其用空格代替,并根据公式求出两个token串A,B

c语言数据结构,求算法

问题描述 c语言数据结构,求算法 把一个单链表LA中的奇数项和偶数项分开,分别放在两个单链表LB,LC中(要求利用原空间,头结点空间可另外开辟) 解决方案 (C语言-数据结构与算法)还原二叉树数据结构和算法系列 - c语言归并排序法 解决方案二: 对LA进行遍历,依次把LA中的项加入LB,LC中.依靠修改原LA中项的指针实现. 解决方案三: //输入时以-1结束#include <stdio.h>#include <stdlib.h>struct node{ int data; s

C语言数据结构:表达式求值代码问题

问题描述 C语言数据结构:表达式求值代码问题 要求允许小数,过滤空格,可以+ - * /和求指数 #include #include #include #include #define true 1 #define false 0 #define OPSETSIZE 8 //运算符集合数为8 char OPSET[OPSETSIZE] = { '+', '-', '*', '/', '(', ')', '#', '^' }; unsigned char Prior[8][8] = { /****

c语言-@C语言数据结构大神:顺序栈求n!。13行的错误怎么修改?为啥说我定义栈错误?

问题描述 @C语言数据结构大神:顺序栈求n!.13行的错误怎么修改?为啥说我定义栈错误? # include<stdio.h> # include<stdlib.h> # define Max_Size 50 typedef struct{//typedef是小写开头! //注意此处的top是整形指针 int data[Max_Size]; int top; }SeqStack,*PSeqStack; void Init_SeqStack(PSeqStack S) { S->

C语言 数据结构之链表实现代码_C 语言

前言 最近在复习数据结构的相关知识,感觉在初学的时候还是有很多东西没有掌握,不过现在终于算是搞得比较有头绪了,所以就在写出来和大家一起分享! 什么是链表 简单的说,链表就是由多个结点离散分配,彼此通过指针相连,每个结点只有一个前驱结点和后继结点.首节点无前驱结点,为结点无后继结点的一种存储结构. 链表的结构 头结点:链表的第一个有效结点前面的结点,头结点并不存放有效数据,也就是数据域为空,加头结点的主要目的是为了方便链表的操作. 首节点:链表的第一个有效结点,结点包含数据域和指针域. 尾结点:尾

数据结构 c语言-C语言数据结构课程设计实现一个集合数据结构

问题描述 C语言数据结构课程设计实现一个集合数据结构 题目:设计并实现一个集合数据结构Set.一个集合中没有重复元素,支持下列运算: boolean add(E o) 如果 set 中尚未存在指定的元素o,则添加此元素. boolean addAll(Set c) 如果 set 中没有指定集合c中的所有元素,则将其添加到此 set 中. void clear() 移除 set 中的所有元素. boolean contains(E o) 如果 set 包含指定的元素o,则返回 true. bool

查询-vb.net 在一个datatable 中,年和月在两列中。如何查找在某一时间区间的值。

问题描述 vb.net 在一个datatable 中,年和月在两列中.如何查找在某一时间区间的值. 例如我想查询2014-9 至2015-1的,就把2013-8月份的去除了. 解决方案 取datatable中每行中年和月的值拼接在一起,在做比较 解决方案二: datatable加一个DataColumn 设置Expression 属性 DocumnetYear+'-'+DocumnetMonthhttps://msdn.microsoft.com/zh-cn/library/system.dat

c语言-C语言,数据结构,树的孩子兄弟表示法,程序一切正常,但是有个问题不太懂了

问题描述 C语言,数据结构,树的孩子兄弟表示法,程序一切正常,但是有个问题不太懂了 我的困惑就是在creatTree函数中,参数是(LTNode &T),也就是说是struct node**型指针,但是在递归中,也就是在creatTree(T->firstchild)中,T->firstchild应该是struct node*型指针,为什么依然可以运行,且运行正确? printfTree()函数也是一样,我就不再多写了 而在main()函数中,我也只创建了LTNode T;在调用的时候