本题要求实现一个函数,在带头结点的单链表表尾处插入一个新元素e。

img


img


#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;
LinkList Create();
void print(LinkList L);
void insert ( LinkList L,ElemType e);
int main()
{
    
        int e;
        LinkList L = Create();
        print(L);
        printf("\n");
        scanf("%d",&e);
        insert(L,e);
        print(L);
    
    
    return 0;
}
LinkList Create()
{
    LinkList L,p,s;
    ElemType e;
    L = (LinkList)malloc(sizeof(LNode));
    p=L;
    scanf("%d",&e);
    while(e!=-1)
    {
        s = (LinkList)malloc(sizeof(LNode));
        s->data=e;
        p->next = s;
        p=s;
        scanf("%d",&e);
    }
    p->next=NULL;
    return L;
}
void print(LinkList L)
{ 
    LinkList p;
    p=L->next;
    while (p)
    {
        printf("%d ", p->data);
        p =p->next;
    }
}
/* 请在这里填写答案 */

想了好久可能还是有基础知识上的问题。

遍历节点找到尾节点就可以啊

void insert ( LinkList L,ElemType e)
{
      LinkList p,q;
      q = (LinkList)malloc(sizeof(LNode));
      q->data = e;
      q->next = NULL;
      p = L;
      while(p ->next!= NULL)
          p = p->next;
      p->next = q;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632