请选择 进入手机版 | 继续访问电脑版

万邦! 学习论坛

 找回密码
 立即注册
搜索
查看: 101|回复: 0

单链表

[复制链接]
发表于 2018-4-20 09:04:45 | 显示全部楼层 |阅读模式
[cpp] view plain copy


  • #include<stdlib.h>  
  • #include<stdio.h>  
  • #include<iostream>  
  • using namespace std;  
  • typedef struct Node  
  • {  
  •     int data;  
  •     struct Node* next;  
  • }Node;  
  •   
  • Node* creat(Node* head);  
  • void print(Node* head);  
  • Node* Delete(Node* head,int num);  
  • int main()  
  • {  
  •     Node* head;  
  •     head = NULL;  
  •     head = creat(head);  
  •     print(head);  
  •   
  •     system("pause");  
  •     return 0;  
  • }  
  •   
  • Node* creat(Node* head)  
  • {  
  •     Node* p1,*p2;  
  •     p1 = p2 = (struct Node*)malloc(sizeof(struct Node));  
  •   
  •     scanf("%d", &p1->data);  
  •     p1->next = NULL;  
  •     while (p1->data>0)  
  •     {  
  •         if (head == NULL)  
  •         {  
  •             head = p1;  
  •         }  
  •         else  
  •         {  
  •             p2->next = p1;  
  •         }  
  •         p2 = p1;  
  •         p1 = (Node*)malloc(sizeof(Node));  
  •         scanf("%d", &p1->data);  
  •     }  
  •     free(p1);  
  •     p2->next = NULL;  
  •     return head;  
  • }  
  •   
  • void print(Node* head)  
  • {  
  •     Node* p;  
  •     p = head;  
  •     if (NULL == head)  
  •     {  
  •         cout << "聊表是空" << endl;  
  •     }  
  •     else  
  •     {  
  •         while (p->next != NULL)  
  •         {  
  •             cout << p->data << endl;  
  •             p = p->next;  
  •         }  
  •     }  
  • }  
  •   
  • Node* Delete(Node* head, int num)  
  • {  
  •     Node* p1, *p2;  
  •     if (NULL == head)  
  •     {  
  •         return head;  
  •     }  
  •     while (p1->data != num && p1->next != NULL) //判断是不是到了最后一个节点和是否存在数值  
  •     {  
  •         p2 = p1;//保存num的上一个节点  这样可以连接下一个节点  
  •         p1 = p1->next;  
  •     }  
  •   
  •     //判断 万一是最后的一个节点   
  •     if (p1->data == num)  
  •     {  
  •         if (head == p1)  
  •         {  
  •             head = p1->next;  
  •         }  
  •         else  
  •         {  
  •             p2->next = p1->next;  
  •         }  
  •     }  
  •     else  
  •     {  
  •         cout << "不存在数据" << endl;  
  •     }  
  •     return head;  
  • }  
  • ---------------------------------华丽的分界线-------------------------------
    北京万邦易嵌科技有限公司专业提供单片机、M3/M4linuxAndroidQT技术服务、技术培训。
    详细咨询请加QQ:715493858



QQ|Archiver|手机版|小黑屋|万邦易嵌学习论坛. ( 京ICP备17017219号 )

GMT+8, 2018-10-15 18:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表