weixin_41274119 2020-10-16 11:49 采纳率: 0%
浏览 105
已采纳

数据结构链表相关问题

1.某单链表中的数据元素结构如下:

struct node{

    char data;

    struct node * next;

}

并有如下别名:

typedef struct node * linklist;

要求实现一个函数,打印链表中的倒数第k个结点中的值(如果有的话),并返回0;如果找不到,则返回-1 。函数原型如下:

int print_k(linklist l,int k)
  1. 定义一个定长整型数组结构(结构体类型),设计两个算法:①.在第一次出现的元素y之前插入元素x;②.将所有奇数元素放在前面、偶数元素放在后面,并说明这两个算法的时间、空间复杂度。
  • 写回答

1条回答 默认 最新

  • threenewbee 2020-10-16 12:40
    关注

    问题1:

    int print_k(linklist l,int k)
    {
    int * arr = (int *)malloc(sizeof(int) * k);
    for (int i = 0; i < k; i++) arr[i] = -1;
    while (l)
    {
    for (int i = 1; i < k; i++) arr[i] = arr[i - 1];
    arr[0] = l->data;
    l = l->next;
    }
    return arr[0];
    }
    

    问题2:

    #include <stdio.h>
    #include <stdlib.h>
    typeof struct 
    {
    int N;
    int *arr;
    } * Sqlist;
    int main()
    {
    int N;
    scanf("%d", &N);
    Sqlist; l;
    l->N = N + 1; 
    l->arr = (int *) malloc(sizeof(int) * (N + 1)) ;
    for (int i = 0; i < N; i++) scanf("%d", &l->arr[i]);
    int y;
    int x;
    scanf("%d%d",&x, &y);
    int j = 0;
    for (j = 0; j < N; j++) if (l->arr[i] == y) break;
    for (int k = N; k > i; k--) l->arr[k] = l->arr[k - 1]; 
    arr[j] = x;
    }
    
    

    算法时间复杂度O(n),空间复杂度O(1)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程