C语言实现链表结构(三)链表节点的查找、删除、增加

版权声明:本文为转载文章,转载请务必注明出处和作者,谢谢合作! https://blog.csdn.net/zhanshen112/article/details/80722537




  
  
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include “node.h”
  4. /* run this program using the console pauser or add your own getch, system(“pause”) or input loop /
  5. typedef struct _list{
  6. Node head;
  7. }List;
  8. void add(Node *head,int number);
  9. void print(List *plist);
  10. int main(int argc, char *argv[]) {
  11. int number;
  12. List list;
  13. list.head= NULL;
  14. do{
  15. scanf( "%d",number);
  16. if(number!= -1){
  17. add(& list,number);
  18. }
  19. } while(number!= -1);
  20. print(& list); //打印链表
  21. //在链表中搜索指定number
  22. scanf( "%d",&number);
  23. Node *p;
  24. int isFound= 0;
  25. for(p= list.head;p;p=p->next){
  26. if(p->value number){
  27. printf( “找到\n”);
  28. isFound= 1;
  29. break;
  30. }
  31. }
  32. if(!isFound){
  33. printf( “没找到\n”);
  34. }
  35. //在链表中删除指定number
  36. Node *q;
  37. for(q= NULL,p= list.head;p;q=p,p=p->next){
  38. if(p->valuenumber){
  39. if(q){ //考虑头结点为空的情形
  40. q->next=p->next;
  41. }
  42. else{
  43. list.head=p->next; //此时p,q均为空结点
  44. }
  45. free§;
  46. break;
  47. }
  48. }
  49. //链表的释放
  50. for(p=head;p;p=q){
  51. q=p->next;
  52. free§;
  53. }
  54. return 0;
  55. }
  56. void add(List *pList,int number)
  57. {
  58. //add to linked-list
  59. Node p=(Node) malloc( sizeof(Node));
  60. p->value=number;
  61. p->next= NULL;
  62. //Find the last
  63. Node *last=pList->head;
  64. if(last){
  65. while(last->next){
  66. last=last->next;
  67. }
  68. //attach
  69. last->next=p;
  70. } else{
  71. pList->head=p;
  72. }
  73. }
  74. void print(List *plist){
  75. Node *p;
  76. for(p=plist->head;p;p=p->next){
  77. printf( "%d\t",p->value);
  78. }
  79. printf( "\n");
  80. }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值