zoukankan      html  css  js  c++  java
  • C++面试题相关

    单链表的节点数据模型

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

    反转链表操作

    list_node_t* reverse_list(list_node_t* head)
    {
    list_node_t* p = head;
    list_node_t* q = head;


    list_node_t* new_list = 0; // 反转后的新链表
    
    
    while ( p )
    {
    // 在新链表的头部插入节点p
    q = p->next;
    p->next = new_list;
    new_list = p;


    p = q; // p和q指向下一个节点
    }


    return new_list;
    }

    2. 环链表问题: 判断一个链表是否包含环

     1 bool list_have_ring(list_node_t* head)
    2 {
    3 // 空链表
    4 if ( !head )
    5 {
    6 return false;
    7 }
    8
    9 // 链表仅包含一个元素,且形成自环
    10 if ( head->next == head )
    11 {
    12 return true;
    13 }
    14
    15 // 反转链表的头结点和原链表头结点是否相同
    16 return ( (ReverseList(pHead) == pHead) ? TRUE : FALSE);
    17 }

    3. 两个升序排列的数组,打印两个数组的交集

    例如: int a[] = {-10, 2, 5, 6, 8, 10, 20}; int b[] = {-15, 3, 4, 6, 7, 15, 20, 25};

     1 void intersection(int a[], int n, int b[], int m)
    2 {
    3 // 数组下标
    4 int index_a = 0;
    5 int index_b = 0;
    6
    7 while ( (index_a < n) && (index_b < m) )
    8 {
    9 if ( a[index_a] == b[index_b] )
    10 {
    11 printf("%d\n", a[index_a]);
    12 ++index_a;
    13 ++index_b;
    14 }
    15 else if ( a[index_a] < b[index_b] )
    16 {
    17 ++index_a;
    18 }
    19 else
    20 {
    21 ++index_b;
    22 }
    23 }
    24 }





     

  • 相关阅读:
    格式化数字保留N位小数
    listbox美化
    501 Not Implemented:服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。
    截透明
    CASE WHEN
    c# HttpWebRequest与HttpWebResponse 绝技
    提取网页中的超链接(C#)
    转sqlhelp
    IIS创建虚拟目录
    一次重构的过程
  • 原文地址:https://www.cnblogs.com/csuchao/p/2370451.html
Copyright © 2011-2022 走看看