qq_34378013 2016-03-31 09:35 采纳率: 14.3%
浏览 1610

不带头结点的链表问题

 #include<stdio.h>
#include<stdlib.h>
typedef struct linknode
{
    int data;
    struct linknode *next;
} node;

node *Creat()
{
    node *head,*p,*s;
    int x,cycle=1;
    printf("Please input total number of data item (press 0 end):");
    head=(node* )malloc(sizeof(node));
    head->next=NULL;
    p=head;
    while (cycle) {
        scanf("%d",&x);
        if (x!=0) {
            s=(node*)malloc(sizeof(node));
            s->data=x;
            p->next=s;
            p=s;
        }
        else cycle=0;
    }
    p->next=NULL;
    p=head;
    head=head->next;
    free(p);
    return head;
}



void Delet(node *head,int i)
{
    int n=1;
    node *p;
    if (i==1){
        p=head;
        head=head->next;
        free(p);
    }
    else{
        while(head!=NULL){
        if(i==n+1) break;
            head=head->next;
            n++;
        }
        head->next=head->next->next;
    }
}

int main(void)
{
    int a;
    node *head,*p=NULL;
    head=Creat();
    printf("输入值a  \n");
    scanf("%d",&a);
        Delet(head,a);
    for(p=head;p!=NULL;p=p->next) printf("%d",p->data);
    return 0;
}

在删除不带头结点的链表的时候,我的这个程序的第一个数,就是头节点怎么删除,求大神帮忙修改一下我的程序。太感谢了。

  • 写回答

1条回答

  • 小灸舞 2016-03-31 11:51
    关注

    楼主要输入的值a代表的是第几个节点还是指节点里存的值?

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集