数据结构 单链表元素定位 PTA

由于这个很简单,他也貌似没要判断溢出,取巧突破

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

//函数状态码定义
#define TRUE        1
#define FALSE       0
#define OK          1
#define ERROR       0
#define INFEASIBLE -1
#define OVERFLOW   -2

typedef int  Status;
typedef int  ElemType; //假设线性表中的元素均为整型

typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;

Status ListCreate_L(LinkList &L,int n)
{
    LNode *rearPtr,*curPtr;   //一个尾指针,一个指向新节点的指针
    L=(LNode*)malloc(sizeof (LNode));
    if(!L)exit(OVERFLOW);
    L->next=NULL;               //先建立一个带头结点的单链表
    rearPtr=L;  //初始时头结点为尾节点,rearPtr指向尾巴节点
    for (int i=1;i<=n;i++){  //每次循环都开辟一个新节点,并把新节点拼到尾节点后
        curPtr=(LNode*)malloc(sizeof(LNode));//生成新结点
        if(!curPtr)exit(OVERFLOW);
        scanf("%d",&curPtr->data);//输入元素值
        curPtr->next=NULL;  //最后一个节点的next赋空
        rearPtr->next=curPtr;
        rearPtr=curPtr;
    }
    return OK;
}
//下面是需要实现的函数的声明
int ListLocate_L(LinkList L, ElemType x);

int main()
{
    LinkList L;
    int n;
    int x,k;
    scanf("%d",&n);  //输入链表中元素个数
    if(ListCreate_L(L,n)!= OK) {
          printf("表创建失败!!!\n");
          return -1;
    }
   scanf("%d",&x); //输入待查找元素
   k=ListLocate_L(L,x);
   printf("%d\n",k);
   return 0;
}
int ListLocate_L(LinkList L, ElemType x)
{
    LNode *p = L;
    int ipos = 0;
    while(p->next)
    {

        if(p->data==x) return ipos;
        p=p->next;
        ipos++;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏猿人谷

单链表

线性表的链式表示和实现       线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以使不连续的)。因此,为...

2195
来自专栏小樱的经验随笔

Codeforces Round #426 (Div. 2)【A.枚举,B.思维,C,二分+数学】

A. The Useless Toy time limit per test:1 second memory limit per test:256 megaby...

2934
来自专栏猿人谷

单链表反转的分析及实现

我先画一个单链表,这个单链表有4个元素。我的思路就是,每次把第二个元素提到最前面来。比如下面是第一次交换,我们先让头结点的next域指向结点a2,再让结点a1...

48710
来自专栏专知

关关的刷题日记76 – Leetcode 234. Palindrome Linked List

关关的刷题日记76 – Leetcode 234. Palindrome Linked List 题目 Given a singly linked list, ...

3149
来自专栏DeveWork

送上段模拟圣诞节下雪的javascript 代码

平安夜我就不多说什么啦,现在Jeff 正在看刚刚出炉的神探夏洛克第三季的圣诞特辑迷你短剧以及纪录片《Unlocking Sherlock 2014》。咱在这里送...

2037
来自专栏小樱的经验随笔

Codefoces 723B Text Document Analysis

B. Text Document Analysis time limit per test:1 second memory limit per test:256...

33710
来自专栏ml

zoj3822 Domination(概率dp)

Domination ---- Time Limit: 8 Seconds      Memory Limit: 131072 KB      Specia...

3376
来自专栏pangguoming

Node.js 开发模式(设计模式)

Asynchronous code & Synchronous code As we have seen in an earlier post (here), ...

2887
来自专栏calmound

poj 3126 Prime Path

Description ? The ministers of the cabinet were quite upset by the message from ...

2657
来自专栏算法与数据结构

PTA 带头结点的单链表就地逆置(10 分)

本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数。L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要求在不新开辟节点...

1957

扫码关注云+社区