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

不带头结点的链表问题

 #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代表的是第几个节点还是指节点里存的值?

    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿