| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 438 人关注过本帖
标题:链表调用的问题
只看楼主 加入收藏
黄色海岸2009
Rank: 1
等 级:新手上路
帖 子:38
专家分:2
注 册:2009-11-7
结帖率:87.5%
收藏
已结贴  问题点数:10 回复次数:2 
链表调用的问题
小弟很困惑,比如说现在要求在一个数值升序的链表(用creat函数建)里插入一些数值
编一个insert的函数
可是编insert时需要对creat调用么,main函数需要对调用creat么,如果是,要如何调用;
小弟身在德国,只能求助网站了;
希望哪个大侠帮我啊
感激不尽
搜索更多相关主题的帖子: 链表 
2009-11-07 21:42
jackwain
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:134
注 册:2009-3-21
收藏
得分:10 
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
typedef struct node
{
 int num;
 struct node *link;
}Node;
void  creat(int *num,int len);
void sll_insert(Node **head,int value);
void show(Node *temp);
Node *head;
int main(void)
{
 int num[10]={1,3,4,6,7,10,12,15,18,20};
 int insert_number;
 head=NULL;
 creat(num,10);
 printf("before insert\n");
 show(head);
 printf("Enter the insert number.\n");
 scanf("%d",&insert_number);
 sll_insert(&head,insert_number);
  printf("After insert number\n");
  show(head);
}
//创建有序链表函数接口
void creat(int *num,int len)
{
Node *ptr,*ptr1;
 register int i;
 head=(Node *)malloc(sizeof(Node));
   if(!head)
    {
      printf("malloc head NULL");
     exit(1);
    }
 head->num=num[0];//创建链表
 ptr=head;
 for(i=1;i<len;i++)
 {
   ptr1=(Node *)malloc(sizeof(Node));
   if(!ptr1)
  {  
  printf("malloc ptr1 error.\n");  
    exit(1);
  }  
  ptr1->num=num[i];
  ptr->link=ptr1;//链接
  ptr1->link=NULL;
  ptr=ptr1;     //移动到下一个结点
}

}
//插入接口函数
void sll_insert(Node **head,int value)
{
    Node *current;
    Node *previous;
    Node *new_node;
    current=*head;
    previous=NULL;
    while(current!=NULL&&current->num<value)
    {
     previous=current;
     current=current->link;
    }
    new_node=(Node *)malloc(sizeof(Node));
     if(!new_node)
     {
         printf("malloc new_node error");
          exit(1);
     }
     new_node->num=value;
     new_node->link=current;
     if(!previous)
     {

         *head=new_node;
     }
   else
   {
       previous->link=new_node;
   }
}
void show(Node *temp)
{
    while(temp!=NULL)
    {
        printf("[%d]",temp->num);
        temp=temp->link;
    }
 printf("\n");
}
2009-11-07 22:00
黄色海岸2009
Rank: 1
等 级:新手上路
帖 子:38
专家分:2
注 册:2009-11-7
收藏
得分:0 
谢谢楼上啊
2009-11-07 22:02
快速回复:链表调用的问题
数据加载中...
 
   



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

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