链表静态添加和动态遍历

news/2025/2/23 9:48:14

如果链表中得变量多了怎么办?

  struct Test t1 = {1,NULL};
     struct Test t2 = {2,NULL};
     struct Test t3 = {3,NULL};
     struct Test t4 = {4,NULL};

    t1.next = &t2;
    t2.next = &t3;
    t3.next = &t4;

那就不能用这种办法了。

printf("%d %d %d %d\n",t1.data,t1.next->data,t1.next->next->data,t1.next->next->next->data);

我们可以用函数遍历。

void printLink(struct Test *head)
{
    while(head != NULL){
       if(head != NULL){
         printf("%d\n",head->data);
         head = head->next;
    }else{
         break;
     }
  }
    return ;
}

整篇代码

#include <stdio.h>

struct Test
{
    int data;
    struct Test *next;
};

void printLink(struct Test *head)
{
    while(head != NULL){
       if(head != NULL){
         printf("%d\n",head->data);
         head = head->next;
    }else{
         break;
     }
  }
    return ;
}
int main()
{
   int i;
   int array[3] = {1,2,3};
     for(i=0;i<sizeof(array)/sizeof(array[0]);i++){
        printf("%d\n",array[i]);

   }

     struct Test t1 = {1,NULL};
     struct Test t2 = {2,NULL};
     struct Test t3 = {3,NULL};
     struct Test t4 = {4,NULL};

    t1.next = &t2;
    t2.next = &t3;
    t3.next = &t4;
      printf("=====use t1 print three num=====\n");
    // printf("%d %d %d %d\n",t1.data,t1.next->data,t1.next->next->data,t1.next->next->next->data);
    printLink(&t1);
  return 0;
}
                                                                                                                                  

用函数遍历的运行结果

在这里插入图片描述


http://www.niftyadmin.cn/n/784235.html

相关文章

剑指Offer(线程)——sleep和wait的区别以及notify和notifyAll的区别

sleep与wait 我们可以从源码看出基本的差别&#xff1a; sleep是Thread下面的一个方法&#xff0c;而wait是Object下面的一个方法sleep()方法可以在任何地方使用。wait()方法只能在synchronized方法或者synchronized块中使用。 但它们本质上的区别则在于&#xff1a; Threa…

链表节点个数及查找

链表节点个数 先定义一个整形函数&#xff0c;因为节点个数肯定是整型变量。 int huoqujiediannum(struct Test *head) {int cnt 0;while(head ! NULL){cnt;head head->next;}printf("cnt %d\n",cnt);return cnt; }然后在main函数里面调用定义的函数。 int …

java:String类型转换

一、java中字符串转换成double类型——Double.parseDouble(String) 二、java中将 String 类型转化为 int 类型——Integer.parseInt(String) 或 Integer.valueOf(String).intValue() 三、用String字符串生成JSONObject和JSONArray数据&#xff1a; JSONArray jsonArray JSONAr…

剑指Offer(线程)——yield

关于Yield&#xff0c;我们可以先提一句这个关键字的概念 先来到源代码&#xff1a; 当使用了yield之后&#xff0c;代表当前线程愿意让出CPU的使用权&#xff0c;但是线程调度器通常会忽略这个暗示。 也是写一个Demo看一下&#xff1a; 这是一个比较正常的情况&#xff0c;我…

日常小记

1、Java中的volatile 变量是什么 在利用Java编写的程序中&#xff0c;编译器会自动对其进行优化&#xff0c;把经常被访问的变量缓存起来&#xff0c;程序在读取这个变量时有可能会直接从缓存中来读取这个值&#xff0c;而不会从内存中读取。这个操作虽然能提高程序的运行效率&…

链表从指定节点后方插入新节点

插入新节点的方法 1.节点后 2.节点前 如果要在3的后面插入&#xff1b; 第一步&#xff0c;找到3 第二步&#xff0c;new->next 3->next(新节点的下一个等于3的下一个) 第三步&#xff0c;3->next new&#xff08;让3的下一个等于new&#xff09; 建立函数&#x…

第一个java程序“helloworld!“

第一个java程序"helloworld!" public class helloworld {// 第二行的内容是万年不变的固定写法&#xff0c;代表main方法// 这一行代表程序执行的起点public static void main(String[] args){// 第三行代表打印输出语句&#xff08;其实就是屏幕显示&#xff09;Sy…

React 基础目录架构设置

本文章简单的介绍一下React 基础目录架构设置 1&#xff0c;整体的目录架构 1&#xff0c;.git是git文件夹 2&#xff0c;dist是打包后文件放置的地方 3&#xff0c;src是源码文件&#xff0c;一般做开发就在这个文件夹 4&#xff0c;.babelrc是babel配置文件 5&#x…