循环链表小练习
来源:互联网 发布:下载切换mp3软件 编辑:程序博客网 时间:2024/06/14 06:03
循环链表小练习
上完课顺便练习循环链表的创建以及输出
# include <stdio.h> typedef struct List{ int data; struct Node * next; }Node,*LinkList; int main (){ LinkList head ,p ,q , k,start; head = (LinkList) malloc (sizeof(Node));//为头结点创建空间 int n,num=0;// scanf("%d",&n);//定义链表的长度 q = head;//q代替head的位置 ,q作为临时保存头结点的指针,防止头结点被覆盖后,找不回来 while (n --){// p = (LinkList) malloc (sizeof(Node));//,为当前节点p开辟空间 scanf("%d",&p->data);//循环输入链表中的每一个值 p->next = head->next;// head->next = p;// head =p;// } //通过一个循环的移动,head此时已经移动到了尾部 head->next = q->next;//此时再将之前临时保存的头结点q拿出来 ,完成收尾相连的工作 //free(head); /*到这之后就建立好了,后续工作就是输出操作以及优化*/ start = q->next;//start可以理解为第一个节点,就是开始的地方 ,q当前还是头结点 k = start->next;//此时,k被赋予了第二个节点的值 while (1){// printf ("%d ",k->data);//此时输出的是第二个节点的值 num ++;//计数器加一 k = k->next;//k的值往下移动一位 if(k == start){//如果k移动到了start (也就是第一个节点的位置) printf ("%d ",k->data);//就输出第一个节点的值 num++;//计数器再加一 break;//跳出循环 } } printf ("\n%d ",num);// return 0;// }
阅读全文
0 0
- 循环链表小练习
- 循环练习
- 循环练习
- 循环练习
- Java:基础练习-循环练习
- for循环练习【20171113练习】
- for循环练习
- Java循环练习
- 循环结构练习1
- 循环练习2
- 循环练习3
- 循环练习4
- 循环练习5
- 数组 循环语句练习
- 汇编多重循环练习
- 脚本判断循环练习
- while循环和练习
- C3_循环结构练习
- 关于协方差矩阵的理解
- C++面向对象、const和指针混用、函数参数的默认值
- 第四周项目4—猴子选大王
- 将Eclipse上普通Java Project移植到Linux上
- ArrayList循环遍历并删除元素的常见陷阱
- 循环链表小练习
- s5p6818
- KVO的底层实现原理
- 【计算方法笔记】列高斯消元法解线性方程组
- TCP/IP学习笔记(3)-IP协议,ARP协议,RARP协议
- Makefile初步理解
- java语言基础(96)——线程池的使用
- 这是一篇博客
- 关于glsl集中参数类型