×
C 语言教程C 简介C 环境设置C 程序结构C 基本语法C 数据类型C 变量C 常量C 存储类C 运算符C 判断C 循环C 函数C 作用域规则C 数组C 指针C 函数指针与回调函数C 字符串C 结构体C 共用体C 位域C typedefC 输入 & 输出C 文件读写C 预处理器C 头文件C 强制类型转换C 错误处理C 递归C 可变参数C 内存管理C 命令行参数C 语言实例C 经典100例

C 标准库

C 标准库 - 参考手册C 标准库 - <assert.h>C 标准库 - <ctype.h>C 标准库 - <errno.h>C 标准库 - <float.h>C 标准库 - <limits.h>C 标准库 - <locale.h>C 标准库 - <math.h>C 标准库 - <setjmp.h>C 标准库 - <signal.h>C 标准库 - <stdarg.h>C 标准库 - <stddef.h>C 标准库 - <stdio.h>C 标准库 - <stdlib.h>C 标准库 - <string.h>C 标准库 - <time.h>

C 练习实例74:连接两个链表


C 语言经典100例C 语言经典100例


题目:连接两个链表。

程序分析:无。

程序源代码:

//  Created by www.waitang.com on 15/11/9.
//  Copyright © 2015年 外唐教程网. All rights reserved.
//

#include <stdlib.h>
#include <stdio.h>
struct list
{
    int data;
    struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{
    if (tmp==NULL) /*delete first node*/
        return pointer->next;
    else
    {
        if(tmp->next->next==NULL)/*delete last node*/
            tmp->next=NULL;
        else /*delete the other node*/
            tmp->next=tmp->next->next;
    return pointer;
    }
}
void selection_sort(link pointer,int num)
{
    link tmp,btmp;
    int i,min;
    for(i=0;i<num;i++)
    {
        tmp=pointer;
        min=tmp->data;
        btmp=NULL;
        while(tmp->next)
        {
            if(min>tmp->next->data)
            {
                min=tmp->next->data;
                btmp=tmp;
            }
            tmp=tmp->next;
        }
        printf("\40: %d\n",min);
        pointer=delete_node(pointer,btmp);
    }
}
link create_list(int array[],int num)
{
    link tmp1,tmp2,pointer;
    int i;
    pointer=(link)malloc(sizeof(node));
    pointer->data=array[0];
    tmp1=pointer;
    for(i=1;i<num;i++)
    {
        tmp2=(link)malloc(sizeof(node));
        tmp2->next=NULL;
        tmp2->data=array[i];
        tmp1->next=tmp2;
        tmp1=tmp1->next;
    }
    return pointer;
}
link concatenate(link pointer1,link pointer2)
{
    link tmp;
    tmp=pointer1;
    while(tmp->next)
        tmp=tmp->next;
    tmp->next=pointer2;
    return pointer1;
}
void main(void)
{
    int arr1[]={3,12,8,9,11};
    link ptr;
    ptr=create_list(arr1,5);
    selection_sort(ptr,5);
}

C 语言经典100例C 语言经典100例


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)