IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 学习总结1/10 -> 正文阅读

[数据结构与算法]学习总结1/10

今天接着学习了链表的循环链表和双链表,发现链表要处理的小细节真的太多了。

另外跟着学长学了dfs和bfs、快排。

总的来说(上午双链表,循环链表;下午dfs,bfs,快排)

晚上就写了一个双链表操作的题。链表真是让我摸不着头脑

1514: 合并链表(线性表)

时间限制:1s

内存限制:128MB

题目描述

(线性表)假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。

输入格式

输入长度n:5

输入数据:1 2 5 6 8

输入长度m:5

输入数据:3 4 7 9 10

输出格式

10 9 8 7 6 5 4 3 2 1

样例输入content_copy

4
7 9 10 11
4
8 12 13 14

样例输出content_copy

14 13 12 11 10 9 8 7 

?思路:就是按题目的要求做就行了

#include<stdio.h>
typedef struct DOUBLE_LIST
{
    int data;
    struct DOUBLE_LIST *front;
    struct DOUBLE_LIST *next;
}double_list;
double_list *createlist()       //创建有n个元素的双向链表 并输入元素
{
    double_list *head, *p, *q;
    int n,x;
    head = (double_list *)malloc(sizeof(double_list));
    head->front = head;
    head->next = head;
    p = head;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d", &x);
        q = (double_list *)malloc(sizeof(double_list));
        q->data = x;
        p->next = q;
        head->front = q;
        q->front = p;
        q->next = head;
        p = q;
    }
    return head;
}
//遍历并且输出这些元素
void printlist(double_list *head)
{
    double_list *p,*q;
    p = head;
    p = p->next;
    int k;
    scanf("%d",&k);
    k--;
    while(k--)
    p=p->next;
    q=p->front;
    while(p!=q)
    {
        if(p==head)
        {
            p=p->next;
            continue;
        }
        printf("%d ",p->data);
        p=p->next;
    }
    printf("%d \n",p->data);
}
//在第i个元素之前插入数据data
void insertlist_f(double_list *head, int i, int data)
{
    double_list *p = head, *q;
    p = p->next;
    i--;
    while(i--)
        p = p->next;
    q = (double_list *)malloc(sizeof(double_list));
    q->data = data;
    (p->front)->next = q;
    q->front = p->front;
    q->next = p;
    p->front = q;
}
//删除第i个位置的元素
void del(double_list *head, int i)
{
    double_list *p = head;
    p = p->next;
    i--;
    while(i--)
        p = p->next;
    (p->front)->next = p->next;
    (p->next)->front = p->front;
    free(p);
}
int main()
{
    double_list *head;
    head = createlist();
    int m;
    scanf("%d",&m);
    if(m>0)
    del(head,m);
    int n,k;
    scanf("%d%d",&n,&k);
    insertlist_f(head,n,k);
    printlist(head);
    return 0;
}

?明天把欠着的题补上然后尽量写几个搜索吧

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:15:37  更:2022-01-12 00:17:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:20:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码