• 实验1:单向链表就地转置


      实验1:单向链表就地转置:

    老师说随便语言,所以用的是c和c++混用方便一些。

    一:实验要求:

    1.新建单链表
    2.依次输出单链表的值
    3.就地反转
    4.输出反转的链表的值
    5.摧毁单链表

    二:实验代码:

    #include<stdio.h>
    #include<stdlib.h>
    #include<iostream>
    using std::cin;
    using std::cout;
    using std::endl;
    
    struct Link
    {
        Link* next;
        int number;
    };
    
    void InitLink(Link* h1) {//头结点没有值
        int n;
        int number;
        cout<<"请输入您要创建链表的元素个数"<<endl;
        cin >> n;
        cout<<"请输入您要创建的链表,并且每一个元素请用空格空出"<<endl;
    
        for (int i = 0; i < n; i++) {
            Link* h2 = (Link*)malloc(sizeof(Link));
            cin >> number;
            h2->number = number;
            h2->next = NULL;
            h1->next = h2;
            h1 = h1->next;
        }
    }
    
    void  ReverseLink(Link* h) {
        cout << "下面是转置后的结果:"<<endl;
    
        Link* h0 = h->next;
    
        Link* cu=NULL, * pr = NULL;
        while (h0 != NULL) {
            cu = h0;
            h0 = h0->next;
            cu->next = pr;
            pr = cu;
        }
    
        h->next = cu;
        cout << "下面是转置后的结果:"<<endl;
    }
    
    void showLink(Link* h) {
        while (h->next!=NULL) {
            cout << h->next->number<<" ";
            h = h->next;
        }
        cout<<endl;
    }
    
    void destoryLink(Link* h) {
        Link* str = h;
        while (str!=NULL) {
            Link* temp = str->next;
            free(str);
            str = temp;
        }
        h = NULL;
        cout << "您已清除"<<endl;
    }
    
    int main() {
        int ck;
        int n;
        Link* head = (Link*)malloc(sizeof(Link));
        head->next = NULL;
    
        InitLink(head);
        showLink(head);
        ReverseLink(head);
        showLink(head);
        destoryLink(head);
        return 0;
    }

    三:结果:

  • 相关阅读:
    修改 jenkins 主目录
    pom中Maven插件 配置 maven-dependency-plugin maven-surefire-plugin
    Oracle解决ora-01653 无法通过1024扩展
    windows 定时备份linux 上oracle 数据库
    oracle drop 表后 恢复
    jenkins 安装
    关于RedHat Linux无法使用yum命令安装gcc-c++问题
    eolinker 安装时遇到的坑
    mysql linux安装教程
    JWT ajax java spingmvc 简洁教程
  • 原文地址:https://www.cnblogs.com/instead-everyone/p/13830860.html
Copyright © 2020-2023  润新知