c语言数据结构,求算法

问题描述

c语言数据结构,求算法
把一个单链表LA中的奇数项和偶数项分开,分别放在两个单链表LB,LC中(要求利用原空间,头结点空间可另外开辟)

解决方案

(C语言-数据结构与算法)还原二叉树
数据结构和算法系列 - c语言归并排序法

解决方案二:
对LA进行遍历,依次把LA中的项加入LB,LC中。依靠修改原LA中项的指针实现。

解决方案三:

 //输入时以-1结束#include <stdio.h>#include <stdlib.h>struct node{    int data;    struct node * next;};struct node * create(){    struct node * head = NULL;    struct node * p = NULL;    struct node * tmp = NULL;    int num;    printf(""input number end -1
"");    while (1)    {        scanf(""%d"" &num);        if (num == -1)            break;        tmp = (struct node *)malloc(sizeof(struct node));        tmp->data = num;        if (head == NULL)        {            head = tmp;            p = head;        }        else        {            p->next = tmp;            p = p->next;        }    }    p->next = NULL;    return head;}void print_link(struct node * head){    while (head)    {        printf(""%d "" head->data);        head = head->next;    }    printf(""
"");}struct node ** devide_link(struct node * head){    struct node *head_even_tmp = NULL;    struct node *head_odd_tmp = NULL;    struct node ** head_result = (struct node * *)malloc(2 * sizeof(struct node *));    head_result[0] = NULL;    head_result[1] = NULL;    while (head)    {        if (head->data % 2) //偶数        {            if (head_result[0] == NULL)            {                head_result[0] = head;                head_even_tmp = head;            }            else {                head_even_tmp->next = head;                head_even_tmp = head_even_tmp->next;            }        }        else  //奇数        {            if (head_result[1] == NULL)            {                head_result[1] = head;                head_odd_tmp = head;            }            else {                head_odd_tmp->next = head;                head_odd_tmp = head_odd_tmp->next;            }        }        head = head->next;    }    if(head_odd_tmp)        head_odd_tmp->next = NULL;    if(head_even_tmp)        head_even_tmp->next = NULL;    return head_result;}int main(){    struct node * LA = create();    struct node ** head_result = NULL;     struct node *LB *LC;    print_link(LA);    head_result = devide_link(LA);    LB = head_result[0];    LC = head_result[1];    printf(""even
"");    print_link(LB);    printf(""odd
"");    print_link(LC);}追问:不需要整个程序,只要写一段实现要求的算法代码追答:那你只需要给出链表节点定义和 分离函数即可1.链表节点定义struct node{int data;struct node * next;};1.将链表分为奇数,偶数两个链表struct node ** devide_link(struct node * head){struct node *head_even_tmp = NULL;struct node *head_odd_tmp = NULL;struct node ** head_result = (struct node * *)malloc(2 * sizeof(struct node *));head_result[0] = NULL;head_result[1] = NULL;while (head){if (head->data % 2) //偶数{if (head_result[0] == NULL){head_result[0] = head;head_even_tmp = head;}else {head_even_tmp->next = head;head_even_tmp = head_even_tmp->next;}}else //奇数{if (head_result[1] == NULL){head_result[1] = head;head_odd_tmp = head;}else {head_odd_tmp->next = head;head_odd_tmp = head_odd_tmp->next;}}head = head->next;}if(head_odd_tmp)head_odd_tmp->next = NULL;if(head_even_tmp)head_even_tmp->next = NULL;return head_result;}追问:好的,谢谢啦
时间: 2024-11-02 21:55:52

c语言数据结构,求算法的相关文章

语言-数据结构查找算法比较研究

问题描述 数据结构查找算法比较研究 谁有用C语言实现多种查找算法的代码啊,里面可以显示查找时间和查找次数的.. 解决方案 自己写一个就是了. 线性查找,复杂度O(N) 折半查找,复杂度O(LogN) Hash查找,复杂度O(1)

《数据结构与算法 C语言版》—— 3.8习题

前言 "数据结构"是计算机程序设计的重要理论技术基础,是计算机学科的核心课程,也是计算机专业考研的必考课程,同时已成为其他理工科专业的热门课程.学好该课程,不仅对学习后续算法设计.数值分析.操作系统.编译原理等课程有很大帮助,而且在实际中有广泛的用途. 数据结构主要研究数据的各种组织形式以及建立在这些结构之上的各种运算的实现.它不仅为用计算机语言进行程序设计提供了方法性的理论指导,还在一个更高的层次上总结了程序设计的常用方法和常用技巧. "数据结构"课程的特点是概念

《数据结构与算法:Python语言描述》一第1章 绪论

第1章 绪论 作为基于Python语言的"数据结构与算法"教程,本章首先讨论一些与数据结构和算法有关的基础问题,还将特别关注Python语言的一些相关情况. 1.1计算机问题求解 使用计算机是为了解决实际问题.计算机具有通用性,其本身的功能很简单,就是能执行程序,按程序的指示完成一系列操作,得到某些结果,或者产生某些效果.要想用计算机处理一个具体问题,就需要有一个解决该问题的程序.经过长期努力,人们已经为各种计算机开发了许多有用的程序.在面对一个需要解决的问题时,如果恰好有一个适用的程

数据结构 算法 书籍-c语言学习数据结构和算法有什么好书推荐吗?

问题描述 c语言学习数据结构和算法有什么好书推荐吗? c语言学习数据结构和算法有什么好书推荐吗? 求大神告知一下,谢谢了 解决方案 学习数据结构的好书哪位大哥介绍几本好书? 关于学习数据结构与算法的书 解决方案二: 刘汝佳的算法竞技入门经典,白色的 解决方案三: 数据结构 http://wenku.baidu.com/link?url=aFQ-ayTp5v3G0VJS1RXFfa-1a4cSm3TwUWD22pDUFqp6vX7CvSuepfFgePJnO8ZJcxMItGpbA3Y5KZthc

《数据结构与算法:Python语言描述》一1.4数据结构

1.4数据结构 从程序输入和输出的角度看,用计算机解决问题,可以看作实现某种信息表示形式的转换.如图1.5所示,把以一种形式表示的信息(输入)送给程序,通过在计算机上运行程序,产生出以另一种形式表示的信息(输出).如果: 具体的"信息表示A"表达了需要求解的某个问题的实例. 得到的"信息表示B"表达了与这个实例对应的求解结果. 那么就可以认为,这个程序完成了该问题实例的求解工作. 为了能用计算机处理与问题有关的信息,就必须采用某种方式表示它,并将相应表示送入计算机.

C语言数据结构:表达式求值代码问题

问题描述 C语言数据结构:表达式求值代码问题 要求允许小数,过滤空格,可以+ - * /和求指数 #include #include #include #include #define true 1 #define false 0 #define OPSETSIZE 8 //运算符集合数为8 char OPSET[OPSETSIZE] = { '+', '-', '*', '/', '(', ')', '#', '^' }; unsigned char Prior[8][8] = { /****

《数据结构与算法:Python语言描述》一1.3算法和算法分析

1.3算法和算法分析 本节集中讨论算法的问题,特别是算法的性质及其分析技术. 1.3.1问题.问题实例和算法 在考虑计算问题时,需要清晰地区分问题.问题实例和算法三个概念,并理解它们之间的关系,这就是本小节讨论的内容.三个基本概念考虑一个计算问题时,需要注意到三个重要概念:问题:一个问题W是需要解决(需要用计算求解)的一个具体需求.例如判断任一个正整数N是否为素数,求任一个方形矩阵的行列式的值等.虽然可以严格定义"问题"的概念,但在这里还是想依靠读者的直观认识.总而言之,现实世界中存在

想要深入学习编程,求推荐语言-目的是算法实现和数据分析

问题描述 想要深入学习编程,求推荐语言-目的是算法实现和数据分析 目前懂得Python, Vb.Net, R的基本知识,并稍微懂得一些C# 实验室大概要向数据处理方面靠一靠,主要涉及的是地理数据库(关系数据库) 最基本需要是实现功能,例如spatial data clusering啊,定制的决策树啊一类的,也有可能涉及到批处理和其他的底层地理数据库处理. 以后可能有一定图形界面的需求. 我应该主要深入学习哪一门语言比较合适我的需求? 或者有什么其他的语言推荐吗 解决方案 推荐python,现在p

数据结构于算法上的作业,求各位大神解答

问题描述 数据结构于算法上的作业,求各位大神解答 第一题 Write a List method, equals, that returns true exactly when the elements of two lists are pair-wise equal. Ideally, your implementation should work for any List implementation, without change. 第二题 Implement a recursive ve