| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 334 人关注过本帖
标题:为什么第一个结点不能删除
只看楼主 加入收藏
赤云
Rank: 2
等 级:论坛游民
帖 子:82
专家分:35
注 册:2014-12-29
结帖率:64.71%
收藏
已结贴  问题点数:12 回复次数:3 
为什么第一个结点不能删除
程序代码:
#include <stdio.h>
#include <malloc.h>
struct node{
    int no;
    char name[10];
    long number;
    struct node* next;
};
struct node * create(int n){//创建列表
    int i;
    struct node *head,*p,*tail;
    printf("no name  number\n");
    for(i=1;i<=n;i++){
        p=(struct node*)malloc(sizeof(struct node));
        scanf("%d%s%ld",&p->no,p->name,&p->number);
        if(i==1){head=p;
                 tail=p;
                 p->next=NULL;}
        else {tail->next =p;
              p->next=NULL;
              tail=p;}
    }
    return head;
}
struct node *shuchu(struct node *head){//输出列表
    struct node *p;
    p=head;
    while(p!=NULL){
        printf("%d  %s  %ld\n",p->no,p->name,p->number);
        p=p->next;
    }
}
struct node *delete(struct node *head,int n){//删除第n个结点
    struct node *p,*q;
    q=head;
    p=head->next;
    while(1){
        if(n==1){head=p; break;}
        while(p->no!=n){
            p=p->next;
            q=q->next;
        }
    q->next=p->next;
    break;
    }
    return head;
}
int main(){
    int n;
    struct node *head;
    printf("输入要创建结点的个数:\n");
    scanf("%d",&n);
    head=create(n);
    printf("输出列表:\n");
    shuchu(head);
    printf("输入要删除结点的序号;\n");
    scanf("%d",&n);
    delete(head,n);
    printf("输出列表:\n");
    shuchu(head);
    return 0;
}
搜索更多相关主题的帖子: number 
2015-02-28 22:13
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:12 
程序代码:
struct node *delete(struct node *head,int n){//删除第n个结点
    struct node *p,*q;
     q=head;
     p=head->next;
     while(1){
         if(n==1){head=p; break;}
         while(p->no!=n){
             p=p->next;
             q=q->next;
         }
     q->next=p->next;
     break;
     }
     return head;

if(n==1){head=p; break;}改成if(n==1){return p; break;}试试

一片落叶掉进了回忆的流年。
2015-02-28 23:27
赤云
Rank: 2
等 级:论坛游民
帖 子:82
专家分:35
注 册:2014-12-29
收藏
得分:0 
回复 2楼 诸葛欧阳
不行啊
2015-03-01 09:29
赤云
Rank: 2
等 级:论坛游民
帖 子:82
专家分:35
注 册:2014-12-29
收藏
得分:0 
回复 2楼 诸葛欧阳
我知道了
2015-03-01 09:52
快速回复:为什么第一个结点不能删除
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015995 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved