• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

数据结构,实现“查找倒数第m个元素”错误?

#include
#include
typedef int ElemType;
typedef struct Node
{
    ElemType data;

    struct Node *next;
} LNode, *LinkList;


void InitList(LinkList &L)                //初始化线性表
{
    L = (LinkList)malloc(sizeof(LNode));        //创建头结点
    L->next = NULL;
    L->data = -1;
}




void Build(LinkList &L)//建立一个带头结点的单链表
{
    int n;
    LinkList p, q;
    p = L;
    printf("请输入数据元素个数n:\n");
    scanf("%d", &n);
    printf("请输入%d个数据元素:\n", n);
    while(n--)
    {
        q = (LinkList)malloc(sizeof(LNode));
        scanf("%d", &q->data);
        q->next = NULL;
        p->next = q;
        p = q;
    }
}
int n = 0;//计数君n
void count(LinkList L, int x)
{
    Node *p;//定义一个指针节点p
    p = L;//将p初值指向链表头节点
    printf("\n请输入要找的元素值x:");
    scanf("%d", &x);//输入需要查找的数
    while(p!= NULL)//用while循环遍历单链表L
    {
        if(p->data == x)
            n++;//正在遍历的数用if语句判断是否等于x,若等于,计数君n+1
        p = p->next;//无论if语句中判断真或假,判断完就可以执行下一个数
    }//(这里的p=p->next不可以在大括号外,否则遍历不能完全执行)
    printf("表中含有%d个%d\n", n, x);//while循环执行完毕可以输出
}
int s=0,j=0;//定义总结点数为s。j记忆第几个节点
void find(LinkList L,int m)
{
        Node *p;
        p=L;
       
        printf("\n你要查找倒数第几个结点的值?");
        scanf("%d",&m);
        while(p!=NULL)
        {
                p=p->next;
                s++;
        }
        while((p->next!=NULL)&&(jnext;
                j++;
        }
       
        printf("倒数第%d个元素的值为%d\n",m,p);
       
}








int main()
{
    LinkList L;
    InitList(L);
    Build(L);
    count(L,n);
        find(L,p);
    return 0;
}

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!