| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 289 人关注过本帖
标题:线性链表的应用。。大虾看看啊。。不知哪错了。
只看楼主 加入收藏
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
结帖率:95.65%
收藏
已结贴  问题点数:2 回复次数:7 
线性链表的应用。。大虾看看啊。。不知哪错了。
#include <stdio.h>
#include<stdlib.h>

struct Grade_Info
{
    int score;
    struct Grade_Info *next;
   
};
typedef struct Grade_Info NODE;

NODE *Create_LinkList();
void Insert_LinkList(NODE *head,NODE *pnew,int i);
void Delete_LinkList(NODE *head,int i);
void Display_LinkList(NODE *head);
void Free_LinkList(NODE *head);

void main()
{
    NODE *head,*pnew;
    head=Create_LinkList();    //create linklist
    if(head==NULL)      //if failed
    return;
    printf("after create:");
    Display_LinkList(head);
   
    pnew=(NODE*)malloc(sizeof(NODE));
    if(pnew==NULL)
    {
        printf("no enough memory!\n");
        return;
    }
    pnew->score=88;
    Insert_LinkList(head,pnew,3);
    printf("after insert");
    Display_LinkList(head);
   
    Delete_LinkList(head,3);
    printf("after delete:");
    Display_LinkList(head);
   
    Free_LinkList(head);
   
}


NODE *Create_LinkList()
{
    NODE *head,*pnew,*tail;
    int score;
    head=(NODE *)malloc(sizeof(NODE));    //Create head point1;
    if(head==NULL)                       //验证内存 ,防止溢出
    {
    printf("no enough memory! ");
    return(NULL);
    }
    head->next=NULL;
    tail=head;
   
    printf("input the score of student: \n");
    while(1)
    {
    scanf("%d",&score);   
    if(score<0)
    break;
    pnew=(NODE *)malloc(sizeof(NODE));     //Create first point
    if(pnew==NULL)                          //验证内存 ,防止溢出  
    {               
     printf("no enough memory! ");
     return(NULL);
    }
    pnew->score=score;   //存入分数
    pnew->next=NULL;   //第一个节点的指针域置为NULL
    tail->next=pnew;   //头指针域指向第一个节点
    tail=pnew;   //为指针指向第一个节点
    }
    return(head);
}



void Insert_LinkList(NODE *head,NODE *pnew,int i)
{
    NODE *p;
    int j;
    p=head;
 for(j=0;j<i&&p->next!=NULL;j++)
   p=p->next;
   if(p==NULL)
   {
       printf("the %d node not foundt!\n");
       return;
   }
   
   pnew->next=p->next;
   p->next=pnew;
}



void Delete_LinkList(NODE *head,int i)
{
    NODE *p,*q;
    int j;
   
    if(i==0)
    {
        return;
    }
   
    p=head;
    for(j=1;j<i && p->next!=NULL;j++)
         p=p->next;
    if(p->next==NULL)
    {
        printf("the %d node not found!\n",i);
        return;
    }
    q=p->next;     //q指向待删节点i
    p->next=q->next;     //删除i节点
    free(q);     
}


void Display_LinkList(NODE *head)
{
   NODE *p;
   
   for(p=head->next;p!=NULL;p->next)
   printf("%d",p->score);
   printf("\n");
  
      
}



void Free_LinkList(NODE *head)
{
    NODE *p,*q;
    p=head;
    while(p->next!=NULL)
    {
    q=p->next;
    p->next=q->next;
    free(q);
    }
    free(head);
}
搜索更多相关主题的帖子: include return create failed 
2011-09-05 21:55
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
在线等。。求解

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-09-05 21:57
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
求解

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-09-05 22:00
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
waitting。。。。。。。。。。。。。

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-09-05 22:02
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:2 
Display_linkList里的
for(p=head->next;p!=NULL;p->next)    //循环指针没有后移,p=p->next;

2011-09-05 22:04
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
另外输出的时候最好加个空格隔开。
2011-09-05 22:14
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
楼主哪里不明白?

                                         
===========深入<----------------->浅出============
2011-09-05 22:16
Heart→M鹏
Rank: 2
等 级:论坛游民
帖 子:80
专家分:94
注 册:2011-5-13
收藏
得分:0 
楼主你的创建函数是用的双向链表?
2011-09-05 22:47
快速回复:线性链表的应用。。大虾看看啊。。不知哪错了。
数据加载中...
 
   



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

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