IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 删除负数* -链表 -> 正文阅读

[数据结构与算法]删除负数* -链表

一个带有表头节点的链表中,链表的每个节点保存了非零的整型数据。现请编写函数删除已有的链表中所有数值小于0的节点。

说明:(1)用带表头的单向链表的方式保存数据,每一个节点的数值域保存一个非零整型数。

(2)预设代码包括主函数、建立链表函数、输出链表函数,请编写删除链表中所有数值小于0的节点的函数。

结构的定义:

struct node

{ int data;??struct node *next;

};

typedef struct node NODE;
typedef struct node * PNODE;

删除所有无效数值结点的函数原型:void?deleteneg(PNODE head),

其中:参数head是带有头结点的单向链表的头指针。

程序输入:在建立链表时,每次插入到头结点后的结点数据,以0为结束。

预设代码

前置代码

view plainprint?

  1. /*?PRESET?CODE?BEGIN?-?NEVER?TOUCH?CODE?BELOW?*/??
  2. #include?<stdio.h>??
  3. #include?<stdlib.h>??
  4. ????
  5. struct?node????
  6. {??
  7. ????int?data;????
  8. ????struct?node?*?next;????
  9. };????
  10. ????
  11. typedef?struct?node?NODE;???
  12. typedef?struct?node?*?PNODE;??
  13. ???
  14. PNODE?constructlist(?PNODE?head,?int?num?);??
  15. void?outlist(?PNODE?head?);??
  16. void?deleteneg(?PNODE?head?);???
  17. ????
  18. int?main?(?)????
  19. {???int?num=1;????
  20. ????PNODE?head;????
  21. ????
  22. ????head?=?(PNODE)malloc(?sizeof(NODE)?);????
  23. ????head->next?=?NULL;????
  24. ????head->data?=?-1;????
  25. ????
  26. ????while?(?num!=0?)????
  27. ????{???scanf("%d",?&num);????
  28. ????????if?(?num!=0?)????
  29. ???????????constructlist?(head,?num);????
  30. ????}????
  31. ????deleteneg(?head?);??
  32. ????outlist(?head?);????
  33. ????return?0;????
  34. }????
  35. ????
  36. PNODE?constructlist(?PNODE?head,?int?num?)??
  37. {???PNODE?p;??
  38. ????p?=?(PNODE)malloc(?sizeof(NODE)?);???
  39. ????p->data?=?num;??
  40. ????p->next?=?head->next;???
  41. ????head->next?=?p;??
  42. ????return?head;??
  43. }??
  44. ??
  45. void?outlist(?PNODE?head?)????
  46. {???PNODE?p;????
  47. ????p?=?head->next;????
  48. ????while?(?p?!=?NULL?)????
  49. ????{???printf("%d\n",?p->data);????
  50. ????????p?=?p->next;????
  51. ????}????
  52. }????
  53. ????
  54. /*?This?is?an?example?for?list.?Please?programme?your?code?like?it.??
  55. void?deleteneg(?PNODE?head?)??
  56. {????
  57. }??
  58. */??
  59. ??
  60. /*?PRESET?CODE?END?-?NEVER?TOUCH?CODE?ABOVE?*/??
    /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */  
     
    #include <stdio.h>  
    #include <stdlib.h>  
    /*一个带有表头节点的链表中,链表的每个节点保存了非零的整型数据。
    现请编写函数删除已有的链表中所有数值小于0的节点。
    说明:(1)用带表头的单向链表的方式保存数据,每一个节点的数值域保存一个非零整型数。
    (2)预设代码包括主函数、建立链表函数、输出链表函数,
    请编写删除链表中所有数值小于0的节点的函数。
    结构的定义:
    struct node
    { int data;  struct node *next;
    };
    typedef struct node NODE;
    typedef struct node * PNODE;
    删除所有无效数值结点的函数原型:void deleteneg(PNODE head),
    其中:参数head是带有头结点的单向链表的头指针。
    程序输入:在建立链表时,每次插入到头结点后的结点数据,以0为结束。
    */ 
    struct node    
    {  
        int data;    
        struct node * next;    
    };    
        
    typedef struct node NODE;   
    typedef struct node * PNODE;  
       
    PNODE constructlist( PNODE head, int num );  
    void outlist( PNODE head );  
    void deleteneg( PNODE head );   
        
    int main ( )    
    {   int num=1;    
        PNODE head;    
        
        head = (PNODE)malloc( sizeof(NODE) );    
        head->next = NULL;    
        head->data = -1;    
        
        while ( num!=0 )    
        {   scanf("%d", &num);    
            if ( num!=0 )    
               constructlist (head, num);    
        }    
        deleteneg( head );  
        outlist( head );    
        return 0;    
    }    
        
    PNODE constructlist( PNODE head, int num )  
    {   PNODE p;  
        p = (PNODE)malloc( sizeof(NODE) );   
        p->data = num; 
        p->next = head->next;   
        head->next = p;  
        return head;  
    }  
      
    void outlist( PNODE head )    
    {   PNODE p;    
        p = head->next;    
        while ( p != NULL )    
        {   printf("%d\n", p->data);    
            p = p->next;    
        }    
    }    
        
    void deleteneg(PNODE head)
    {
        PNODE p,temp1,temp2;         
        p = head; 
        int flag = 0;
        while ( p->next != NULL )         
        {   
        	temp1 = p -> next;
            while( temp1->data <= 0)
    		{
    			p->next = temp1->next;
    			free(temp1);
    			temp1 -> data= 2;
    			if(p ->next !=NULL)
    			temp1 = p -> next;
            }
            if(p ->next !=NULL)
            p = p -> next;
        } 
        
    }

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 23:13:18  更:2022-07-04 23:15:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:21:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码