数据结构实验1-顺序表-各种操作

2023-11-18


要求:

       创建两个顺序表实现两个顺序表的合并以及扩容,以及单个顺序表的查找,插入,删除,排序,清空,销毁,查找前驱以及后继等等。

       (有错会继续改的)

        以及程序的完备性,健壮性,可读性等等

经过这次实验感觉我写的最多的不是程序而是告诉程序执行者下一步该怎么做怎么选择。。。。。(一种上学期c语言课程设计的赶脚)



#include <iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define MAXSIZE 100
#define INCREMENT 20
using namespace std;
typedef int status;
char str[10];
int n1,n2,rec;
typedef struct
{
    int *elem;
    int len;
    int lise;
}sqlist;
sqlist sq1,sq2,sq3;
status initlist(sqlist &l)
{
    l.elem=(int *)malloc(sizeof(sqlist)*MAXSIZE);
    if(!l.elem)
        return 0;
    l.len=0;
    l.lise=MAXSIZE;
    return 1;
}
void getsq(int n,sqlist &l)//获取顺序表中元素
{
    for(int i=1;i<=n;++i)
    {
        scanf("%d",&l.elem[i]);
        l.len++;
    }
}
void destorylist(sqlist &l)//销毁顺序表
{
    if(l.elem)
        delete []l.elem;
}
void clearlist(sqlist &l)//清空顺序表
{
    l.len=0;
}
status listempty(sqlist &l)//判断顺序表是否为空
{
    if(l.len==0)
    {
        return true;
    }
    return false;
}
status listlength(sqlist l)//获取非空顺序表中元素个数
{
    return l.len;
}
status getelem(sqlist l,int i,int &e)//获取顺序表中第i个元素
{
    if(i<=0||i>l.len)
    {
        return -1;
    }
    e=l.elem[i];
    return 1;
}
status locatelem(sqlist l,int e)//找顺序表中与e相等的第一个数的位置
{
    for(int i=1;i<=l.len;++i)
    {
        if(l.elem[i]==e)
            return i;
    }
    return -1;
}
status priorelem(sqlist l,int cur,int &pre)//在顺序表中寻找指定值的前驱
{
    for(int i=1;i<=l.len;++i)
    {
        if(l.elem[i]==cur)
        {
            pre=l.elem[i-1];
            return 1;
        }
    }
    return -1;
}
status nextelem(sqlist l,int cur,int &next)//在顺序表中寻找指定值的后继
{
    for(int i=1;i<=l.len;++i)
    {
        if(l.elem[i]==cur)
        {
            next=l.elem[i+1];
            return 1;
        }
    }
    return -1;
}
void listinsert(sqlist &l,int i,int e)//在顺序表第i个位置插入指定值
{
    for(int j=l.len;j>=i;j--)
    {
        l.elem[j+1]=l.elem[j];
    }
    l.elem[i]=e;
    l.len++;
}
status listdelete(sqlist &l,int i,int &e)//删除顺序表第i个元素并返回该元素
{
    if(i<=0||i>l.len)
        return -1;
    e=l.elem[i];
    for(int j=i+1;j<=l.len;++j)
    {
        l.elem[j-1]=l.elem[j];
    }
    l.len--;
    return 1;
}
void traverselist(sqlist l)//遍历顺序表并输出元素
{
    for(int i=1;i<=l.len;++i)
    {
        if(i==1)
            printf("%d",l.elem[i]);
        else
            printf(" %d",l.elem[i]);
    }
    printf("\n");
}
void sortlist(sqlist &l)
{
    for(int i=1;i<l.len;++i)
    {
        for(int j=i+1;j<=l.len;++j)
        {
            if(l.elem[i]>l.elem[j])
            {
                int tem=l.elem[i];
                l.elem[i]=l.elem[j];
                l.elem[j]=tem;
            }
        }
    }
    printf("\n");
}
status kuorong(sqlist &l)
{
    int c;
    printf("若选择扩容则输入1否则输入0\n");
    scanf("%d",&c);
    if(c==1)
    {
        int *newbase=(int *)realloc(l.elem,(l.lise+INCREMENT)*sizeof(sqlist));
        if(!newbase)
        {
            printf("扩容失败\n");
            return 0;
        }
        return 1;
    }
    else
        return 0;
}
status mergelist(sqlist l1,sqlist l2,sqlist &l3)
{
    if(l3.lise<l1.len+l2.len)
    {
        printf("L3空间不足\n");
        if(!kuorong(sq3))
            return 0;
    }
    int k=1,i=1,j=1;
    l3.len=0;
    while(i<=l1.len&&j<=l2.len)
    {
        if(l1.elem[i]<=l2.elem[j])
        {
            l3.elem[k++]=l1.elem[i];
            l3.len++;
            i++;
        }
        else
        {
            l3.elem[k++]=l2.elem[j];
            j++;
            l3.len++;
        }
    }
    while(i<=l1.len)
    {
        l3.elem[k++]=l1.elem[i++];
        l3.len++;
    }
    while(j<=l2.len)
    {
        l3.elem[k++]=l2.elem[j++];
        l3.len++;
    }
    return 1;
}
void choose()
{
    int ch,x,y,z;
    system("cls");
    printf("***************************\n");
    printf("请选择您所要进行的操作\n");
    printf("1.排序\n2.判断顺序表是否为空\n3.顺序表中元素个数\n");
    printf("4.寻找表中第i个元素\n5.寻找指定值及前驱后继\n6.插入\n7.删除\n");
    printf("8.合并顺序表\n9.遍历输出\n10.清空\n11.销毁\n\n");
    scanf("%d",&ch);
    if(ch==1)
    {
        int c;
        system("cls");
        printf("若您想对第一个顺序表进行排序输入1对第二个输入2\n");
        scanf("%d",&c);
        if(c==1)
        {
            sortlist(sq1);
            traverselist(sq1);
        }
        else if(c==2)
        {
            sortlist(sq2);
            traverselist(sq2);
        }
        else
            printf("输入有误\n");
        system("pause");
    }
    else if(ch==2)
    {
        system("cls");
        int c;
        printf("若您想判断第一个顺序表是否为空输入1判断第二个输入2\n");
        while(scanf("%d",&c)&&(c!=1&&c!=2))
        {
            printf("输入有误请重新输入\n");
        }
        if(c==1)
        {
            if(listempty(sq1))
                printf("顺序表1为空\n");
            else
                printf("顺序表1不为空\n");
        }
        else
        {
            if(listempty(sq2))
                printf("顺序表2为空\n");
            else
                printf("顺序表2不为空\n");
        }
        system("pause");
    }
    else if(ch==3)
    {
        system("cls");
        int c;
        printf("若您想查找第一个顺序表元素个数输入1查找第二个输入2\n");
        while(scanf("%d",&c)&&(c!=1&&c!=2))
        {
            printf("输入有误请重新输入\n");
        }
        if(c==1)
            printf("第一个顺序表中元素个数为%d\n",listlength(sq1));
        else
            printf("第二个顺序表中元素个数为%d\n",listlength(sq2));
        system("pause");
    }
    else if(ch==4)
    {
        system("cls");
        int c,d,e;
        printf("若您想查找第一个顺序表中元素输入1查找第二个输入2\n");
        while(scanf("%d",&c)&&(c!=1&&c!=2))
        {
            printf("输入有误请重新输入\n");
        }
        if(c==1)
        {
            printf("请输入您所要查找元素的位置\n");
            scanf("%d",&d);
            int tem=getelem(sq1,d,e);
            if(tem==-1)
                printf("输入所要查找元素位置错误\n");
            else
                printf("您所要查找的顺序表%d中第%d个元素是%d\n",c,d,e);
        }
        else
        {
            printf("请输入您所要查找元素的位置\n");
            scanf("%d",&d);
            int tem=getelem(sq2,d,e);
            if(tem==-1)
                printf("输入所要查找元素位置错误\n");
            else
                printf("您所要查找的顺序表%d中第%d个元素是%d\n",c,d,e);
        }
        system("pause");
    }
    else if(ch==5)
    {
        system("cls");
        int c,d,e,f;
        printf("若您想查找第一个顺序表指定值输入1查找第二个输入2\n");
        while(scanf("%d",&c)&&(c!=1&&c!=2))
            printf("输入有误请重新输入\n");
        if(c==1)
        {
            printf("若您想查找指定值位置输入2,查找指定值前驱输入1,查找指定值后继输入3\n");
            scanf("%d",&d);
            if(d==1)
            {
                printf("请输入指定值\n");
                scanf("%d",&f);
                int tem=priorelem(sq1,f,e);
                if(tem==-1)
                    printf("指定值输入有误\n");
                else
                    printf("%d在顺序表%d中的前驱是%d\n",f,c,e);
            }
            else if(d==2)
            {
                printf("请输入指定值\n");
                scanf("%d",&f);
                int tem=locatelem(sq1,f);
                if(tem==-1)
                    printf("指定值输入有误\n");
                else
                    printf("%d在顺序表%d中的位置是%d\n",f,c,tem);
            }
            else if(d==3)
            {
                printf("请输入指定值\n");
                scanf("%d",&f);
                int tem=nextelem(sq1,f,e);
                if(tem==-1)
                    printf("指定值输入有误\n");
                else
                    printf("%d在顺序表%d中的后继是%d\n",f,c,e);
            }
        }
        else if(c==2)
        {
            printf("若您想查找指定值位置输入2,查找指定值前驱输入1,查找指定值后继输入3\n");
            scanf("%d",&d);
            if(d==1)
            {
                printf("请输入指定值\n");
                scanf("%d",&f);
                int tem=priorelem(sq2,f,e);
                if(tem==-1)
                    printf("指定值输入有误\n");
                else
                    printf("%d在顺序表%d中的前驱是%d\n",f,c,e);
            }
            else if(d==2)
            {
                printf("请输入指定值\n");
                scanf("%d",&f);
                int tem=locatelem(sq2,f);
                if(tem==-1)
                    printf("指定值输入有误\n");
                else
                    printf("%d在顺序表%d中的位置是%d\n",f,c,tem);
            }
            else if(d==3)
            {
                printf("请输入指定值\n");
                scanf("%d",&f);
                int tem=nextelem(sq2,f,e);
                if(tem==-1)
                    printf("指定值输入有误\n");
                else
                    printf("%d在顺序表%d中的后继是%d\n",f,c,e);
            }
        }
        system("pause");
    }
    else if(ch==6)
    {
        system("cls");
        int c,d,e,f;
        printf("若您想插入第一个顺序表输入1插入第二个输入2\n");
        while(scanf("%d",&c)&&(c!=1&&c!=2))
            printf("输入有误请重新输入\n");
        if(c==1)
        {
            printf("请输入您所想插入的值以及位置\n");
            scanf("%d%d",&e,&d);
            listinsert(sq1,d,e);
            traverselist(sq1);
        }
        else if(c==2)
        {
            printf("请输入您所想插入的值以及位置\n");
            scanf("%d%d",&e,&d);
            listinsert(sq2,d,e);
            traverselist(sq2);
        }
        system("pause");
    }
    else if(ch==7)
    {
        system("cls");
        int c,d,e,f;
        printf("若您想删除第一个顺序表中元素输入1删除第二个表中元素输入2\n");
        while(scanf("%d",&c)&&(c!=1&&c!=2))
            printf("输入有误请重新输入\n");
        if(c==1)
        {
            printf("请输入您所想删除元素的位置\n");
            scanf("%d",&d);
            int tem=listdelete(sq1,d,e);
            if(tem==-1)
                printf("位置信息输入有误\n");
            else
            {
                printf("您所想删除的位置%d处的元素是%d\n",d,e);
                traverselist(sq1);
            }
        }
        else if(c==2)
        {
            printf("请输入您所想删除元素的位置\n");
            scanf("%d",&d);
            int tem=listdelete(sq2,d,e);
            if(tem==-1)
                printf("位置信息输入有误\n");
            else
            {
                printf("您所想删除的位置%d处的元素是%d\n",d,e);
                traverselist(sq2);
            }
        }
        system("pause");
    }
    else if(ch==8)
    {
        system("cls");
        if(!mergelist(sq1,sq2,sq3))
            printf("合并失败\n");
        traverselist(sq3);
        system("pause");
    }
    else if(ch==9)
    {
        system("cls");
        int c,d,e,f;
        printf("若您想输出第一个顺序表输入1输出第二个表输入2\n");
        while(scanf("%d",&c)&&(c!=1&&c!=2))
            printf("输入有误请重新输入\n");
        if(c==1)
            traverselist(sq1);
        else
            traverselist(sq2);
        system("pause");
    }
    else if(ch==10)
    {
        system("cls");
        int c;
        printf("若您想对第一个顺序表进行清空输入1对第二个输入2\n");
        scanf("%d",&c);
        if(c==1)
            clearlist(sq1);
        else if(c==2)
            clearlist(sq2);
        else
            printf("输入有误\n");
        system("pause");
    }
    else if(ch==11)
    {
        system("cls");
        int c;
        printf("若您想对第一个顺序表进行销毁输入1对第二个输入2\n");
        while(scanf("%d",&c)&&(c!=1&&c!=2))
        {
            printf("输入有误请重新输入\n");
        }
        if(c==1)
            destorylist(sq1);
        else
            destorylist(sq2);
        system("pause");
    }
}
int main()
{
    int mark;
    while(1)
    {
        system("cls");
        printf("------欢迎进入系统------\n");
        printf("请输入您所要创建的第一个顺序表的元素个数\n");
        scanf("%d",&n1);
        while(!initlist(sq1))
        {
            printf("创建出错,麻烦重新输入当前顺序表元素个数\n");
            scanf("%d",&n1);
        }
        printf("请输入该顺序表的元素\n");
        getsq(n1,sq1);
        printf("请输入您所要创建的第二个顺序表的元素个数\n");
        scanf("%d",&n2);
        while(!initlist(sq2))
        {
            printf("创建出错,麻烦重新输入当前顺序表元素个数\n");
            scanf("%d",&n2);
        }
        printf("请输入该顺序表的元素\n");
        getsq(n2,sq2);
        initlist(sq3);
        while(1)
        {
            int c;
            choose();
            printf("若您想现在退出请输入0否则输入1\n");
            scanf("%d",&c);
            if(!c)
                break;
        }
        printf("若您想现在退出系统请输入0否则输入1\n");
        scanf("%d",&mark);
        if(!mark)
            break;
    }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构实验1-顺序表-各种操作 的相关文章

  • Bash中各种括号

    Bash中有各种括号 包括单小括号 双小括号 单中括号 双中括号 单大括号 而且它们之间很容易混淆 所以很有必要总结一下它们的用法 1 的用法 单个小括号用来创建一个子shell 例如 pwd home xfeng cd tmp pwd t
  • matlab智能算法之模拟退火算法

    智能算法之模拟退火算法 1 起源 2 物理退火流程 2 1 加温过程 2 2 等温过程 2 3 冷却过程 2 4 组合优化与物理退化 3 原理 3 1 算法核心迭代 3 2 具体流程 4 案例 4 1 求解n元函数的极小值 4 2 求解二元
  • Java 多线程编程

    Java给多线程编程提供了内置的支持 一个多线程程序包含两个或多个能并发运行的部分 程序的每一部分都称作一个线程 并且每个线程定义了一个独立的执行路径 多线程是多任务的一种特别的形式 但多线程使用了更小的资源开销 这里定义和线程相关的另一个
  • 代码整洁之道1-6章总结

    第一章 整洁代码 总的来说就是 整洁的代码有益于团队的测试开发 往大了说会影响公司的发展 作者列举了几个公司的反面教材 由于代码不够整洁 无法继续维护 导致公司倒闭的情况 迭代周期越来越长 所以说作为一个程序员 都有义务和责任去尽量写出简洁
  • 在服务中启动带有界面的程序

    转载请标明是引用于 http blog csdn net chenyujing1234 欢迎大家拍砖 参考文章 http blog csdn net goingup article details 2932752 reply 在服务中启动带
  • android 中文权限解释

    PermissList Key android permission ACCESS CHECKIN PROPERTIES Title 访问检入属性 Memo 允许对检入服务上传的属性进行读 写访问 普通应用程序不能使用此权限 Level 0
  • linux脚本加载bashprofile,linux环境变量之profile .bash_profile .bash_login .profile .bashrc 加载详解...

    前言 这里讨论的shell都是bash shell 使用哪种shell形式可以通过修改 etc passwd 文件配置 bash sh csh 讨论的配置文件包括 etc profile etc bashrc bash login bash
  • 【Linux】Vmware虚拟机安装教程

    目录 一 下载Vmware和CentOS 二 使用Vmware创建虚拟机 1 创建虚拟机 2 稍后安装镜像 3 选择对应镜像版本 4 输入虚拟机名称和保存地址 5 指定虚拟机磁盘大小 6 完成 三 安装CentOS 1 查看cpu是否开启虚
  • 15.Linux多线程编程

    一 线程理论基础 1 定义 线程技术早在60年代就被提出 但真正应用多线程到操作系统中去 是在80年代中期 solaris是这方面的佼佼者 传统的Unix也支持线程的概念 但是在一个进程中只 允许有一个线程 这样多线程就意味着多进程 现在
  • Netty NIO 框架性能压测-短链接-对比Tomcat

    压测方案 准备多个文件大小分别为 1k 10k 100k 300k 使用ab分别按 50 2000 按50逐渐叠加 压测服务 每次请求10W次 硬件信息 CPU Intel R Xeon R CPU 1 86GHz 4 4G 统计脚本 gr
  • 嵌入式linux屏幕显示,嵌入式Linux下竖屏显示配置

    摘要 目前大多数设备的显示器是横屏 例如高清分辨率1920 1080 笔记本14寸显示器1366 768以及最近很热门的 4K 分辨率3840 2160 另外一种则是竖屏显示器 常见于娱乐 广告设备 手机最为常见的竖屏设备 以及户外的广告牌
  • git命令全家福

    1 切换分支 git checkout dev 2 拉取远程分支到本地 并切换到该分支 git pull git checkout b dev 本地分支名称 origin dev 远程分支名称 3 查看分支 git branch a
  • 2018年最常见的Python面试题&答案(上篇)

    Q 1 Python有哪些特点和优点 作为一门编程入门语言 Python主要有以下特点和优点 可解释 具有动态特性 面向对象 简明简单 开源 具有强大的社区支持 当然 实际上Python的优点远不止如此 可以阅读该文档 详细了解 https
  • ubuntu安装svn服务器

    安装命令 sudo apt getinstall subversion 创建项目目录 sudo mkdir home svn cd home svn project sudo chmod R777 project 创建svn仓库 sudo
  • rbac 另外一种逃逸

    Privilege Escalation from Node Proxy Rights in Kubernetes RBAC aquasec com
  • mysql时间相减-时间运算-转换毫秒值的问题

    mysql时间运算 一 时间相减发现与结果差距很大 二 原因 三 正确的运算 一 时间相减发现与结果差距很大 mysql gt select t1 t2 t2 t1 from mytest t1 t2 t2 t1 2013 04 21 16
  • Spring4学习笔记:Spring框架中为一个bean配置依赖注入的方式

    Spring框架为一个bean配置依赖注入的四种方式 属性注入 构造方法注入 工厂注入 泛型依赖注入 1 属性注入 属性方法注入利用setXxx 方法注入 Bean 的属性值或者依赖对象 由于属性注入方式具有可选择性和灵活性高的优点 因此属
  • 【算法】深度优先搜索DFS 入门:基本知识+经典例题

    DFS最重要的是理清搜索顺序 ps 这是我入门dfs时写的博客 后来dfs渐渐熟练了 也补充了一些题目上去 带原题和代码 个人感觉整篇博文从上到下确实由易到难 代码也由开始的冗长变得渐渐精简 自学DFS看的视频 小甲鱼 讲原理 青岛大学 王
  • Linux / pthread_create() 函数所使用的线程函数为什么必须是静态函数?

    答案 因为 pthread create 函数要求的线程函数必须满足如下格式 void ThreadFunc void args 对于普通类成员函数 虚函数 他们实际上都是包含了调用他们的对象的 this 指针 即 经过编译器优化 线程函数

随机推荐

  • 【华为OD机试真题】对称字符串(C++&java&python)100%通过率 超详细代码注释 代码解读

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 对称字符串 时间限制 1s空间限制 256MB限定语言 不限 题目描述 对称就是最大的美学
  • Period 【HDU - 1358】【KMP求周期】

    学习KMP算法可以参阅这篇文章 不懂的可以在线回答 题目链接 题意 我们想知道一串字符中的前缀中有多少最大周期数 例如 aaa 中 前两个 aa 最小周期长度为 a 所以周期长度为2 前三个 aaa 的最小周期也是 a 所以周期长度为3 再
  • 景深概念、计算方法与影响因素

    一 景深概念 景深 Depth of Field DOF 是指在摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围 而光圈 镜头 及拍摄物的距离是影响景深的重要因素 在聚焦完成后 焦点前后的范围内所呈现的清晰图像
  • caffe cudnn出现错误: declaration is incompatible with "const char *cudnnGetErrorString(cudnnStatus_t)"

    cudnn h中 inline const char cudnnGetErrorString cudnnStatus t status 修改为 inline const char CUDNNWINAPI cudnnGetErrorStrin
  • wallpaper Engine 安装教程

    今天在网上看到了一个软件wallpaper Engine 效果太酷炫了 就买了个来试试 效果是很棒 但是缺点是无法和桌面管理工具兼容 例如Fences 如果要二者兼得 则必须要PS辅助 运行环境 Windows7 Wallpaper Eng
  • GeckoDriver 国内镜像源加速下载

    GeckoDriver 国内镜像源加速下载 https mirrors huaweicloud com geckodriver
  • FastAPI从入门到实战(4)——路径参数与数值校验

    简单记录路径参数的类型 错误检查 自动填充 数据转换 解析 验证 包括数字大小范围的验证 参数别名 API 交互文档中传参演示等内容 一个伪静态请求 app01 get stu01 parameters def path params01
  • 模拟电子技术

    模电 半导体器件 二极管 1 半导体的基础知识 2 半导体二极管 场效应管三极管及其放大电路 1 绝缘栅型场效应管 MOSFET 2 结型场效应管 JFET 3 场效应管的主要参数 场效应管 放大电路 基本放大电路 差分式放大电路 集成运算
  • vue3 + gzip +nginx 部署 静态文件被识别成text/html的问题

    Failed to load module script Expected a JavaScript module script but the server responded with a MIME type of text html
  • java:面向对象(多态的主板示例)。

    需求 电脑运行实例 电脑运行基于主板 我们写这样一个代码 class MainBoard public void run System out println mainboard run class DuoTaiDemo4 public s
  • 玩转格式转换——.xml->.txt

    一个帅气的boy 你可以叫我 loVe 个人主页 l Ve的个人主页 如果对你有帮助的话希望三连 支持一下博主 VOC数据集转YOLO数据集 1 前言 2 分析xml txt数据 3 转换过程 4 最后结果对比 1 前言 最近学习Yolo
  • 友元成员函数使用时的注意事项

    友元成员函数的注意事项 友元的概念 友元 的概念其实是针对于类的私有成员来说的 一个类的由于封装的缘故 类体中私有成员是不可以被外界访问的 无论是继承也好 都是无法访问类内私有成员的 但是正是有那么一些人 愿意打破陈规破例访问类体内的私有成
  • linux下c/c++开发工具集

    clang llvm组合 lldb debugger 代码补全vim clang complete linux开发花环境 vim eclipse kscope kate kdevelop emacs win虚拟机 source insigh
  • Python excel数据处理之公式---openpyxl

    有些时候excel中直接通过公式进行计算比较方便 这样会比较简洁 并且下面代码也解决了excel读取单元格内容时 通过公式计算的值 为None的问题 咱们废话不多说 直接上代码 import sys import openpyxl from
  • element-ui 通过变量修改默认样式

    项目用的是 element ui vue 项目里有个需求是要修改 element 消息提示组件中 warning 类型的背景色和那个小感叹号的背景色 有两种方式 第一种比较简单 用 F12 找到想要修改的元素 直接覆盖对应样式 但考虑到有时
  • 机械臂控制C语言程序,ROS机械臂开发:MoveIt!编程

    一 编程接口 提供C Python GUI 命令行等接口 move group节点 Python和C 接口示例 MoveIt关注更多的是plan工作 后面的execute需要控制器执行 MoveIt只是监控功能 编程步骤 连接控制需要的规划
  • Qt中LineEdit、TextEdit 、PlainTextEdit三个控件的区别

    Qt中LineEdit TextEdit PlainTextEdit这三个控件区别为 输入格式不同 用途不同 限制行数不同 一 输入格式不同 1 LineEdit LineEdit的输入格式为单行文本输入 2 TextEdit TextEd
  • 亚马逊云aws12个月免费服务器搭建小结 (

    转载自 http blog sina com cn s blog 53a30a3b0101hdx9 html 本文小结了在亚马逊aws Amazon Web Services 云计算服务上注册一个免费的服务器的方法和一些注意事项 郑重申明
  • java中string与json互相转化

    在Java中socket传输数据时 数据类型往往比较难选择 可能要考虑带宽 跨语言 版本的兼容等问题 比较常见的做法有两种 一是把对象包装成JSON字符串传输 二是采用java对象的序列化和反序列化 随着Google工具protoBuf的开
  • 数据结构实验1-顺序表-各种操作

    要求 创建两个顺序表实现两个顺序表的合并以及扩容 以及单个顺序表的查找 插入 删除 排序 清空 销毁 查找前驱以及后继等等 有错会继续改的 以及程序的完备性 健壮性 可读性等等 经过这次实验感觉我写的最多的不是程序而是告诉程序执行者下一步该