鱼C论坛

 找回密码
 立即注册
查看: 3021|回复: 0

[学习笔记] 腾讯面试题、快慢指针、初始链表、随机创建、打印、查找中间点

[复制链接]
发表于 2021-9-17 17:50:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define MAXSIZE 20

  5. typedef struct like
  6. {
  7.         int F;
  8.         struct like *next;
  9. }like, *likes;

  10. void explainList();
  11. void InitList(likes *T);        //初始化链表
  12. void GetList(likes *T);                //创建20个随机数据
  13. void PutList(like *T);                //打印所有链表数据
  14. void MiddleList(like *T);        //快慢指针查询中间点

  15. void MiddleList(like *T)
  16. {
  17.         like *temp = T;

  18.         while (1)
  19.         {

  20.                 if (temp->next == NULL)
  21.                 {
  22.                         printf("此链表为基数中间点数据为%d", T->F);
  23.                         break;
  24.                 }
  25.                 else if(temp->next->next == NULL)
  26.                 {
  27.                         printf("此链表为偶数中间点数据为%d和%d", T->F, T->next->F);
  28.                         break;
  29.                 }
  30.                 T = T->next;
  31.                 temp = temp->next->next;
  32.         }

  33. }

  34. void PutList(like *T)
  35. {
  36.         while (1)
  37.         {
  38.                 printf("<%d>", T->F);       
  39.                 if (T->next == NULL)
  40.                 {
  41.                         break;
  42.                 }
  43.                 T = T->next;
  44.         }
  45. }
  46. void GetList(likes *T)
  47. {
  48.         int i;
  49.         like *temp, *tail;
  50.         srand((unsigned)time(NULL));

  51.         for (i = 0; i < MAXSIZE; i++)
  52.         {
  53.                 temp = (likes )malloc(sizeof(like ));
  54.                 temp->F = (rand() % 100);
  55.                 temp->next = NULL;

  56.                 if ((*T)->next == NULL)
  57.                 {
  58.                         (*T)->next = temp;
  59.                 }
  60.                 else
  61.                 {
  62.                         tail->next = temp;
  63.                 }
  64.                 tail = temp;
  65.         }
  66. }
  67. void InitList(likes *T)
  68. {
  69.         *T = (likes )malloc(sizeof(like ));
  70.         (*T)->next = NULL;
  71. }


  72. void explainList()
  73. {
  74.                 printf("1、初始化链表\n");
  75.                 printf("2、创建20个数据\n");
  76.                 printf("3、打印链表所有数据\n");
  77.                 printf("4、快慢指针查询中间点\n");
  78.                 printf("0、结束本程序\n");
  79. }

  80. int main()
  81. {
  82.         int K;
  83.         like *T;
  84.        
  85.         explainList();
  86.         while(1)
  87.         {
  88.                 printf("输入选项:");
  89.                 scanf("%d", &K);
  90.                 getchar();
  91.                
  92.                 switch(K)
  93.                 {
  94.                 case 1:{
  95.                         InitList(&T);
  96.                            }
  97.                         break;
  98.                 case 2:{
  99.                         GetList(&T);
  100.                            }
  101.                         break;
  102.                 case 3:{
  103.                         PutList(T->next);
  104.                         putchar('\n');
  105.                            }
  106.                         break;
  107.                 case 4:{
  108.                         MiddleList(T->next);
  109.                         putchar('\n');
  110.                            }
  111.                         break;
  112.                 case 0:{
  113.                         return 0;
  114.                            }
  115.                         break;
  116.                 }
  117.                
  118.         }
  119.        
  120.         return 0;
  121. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-16 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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