文档章节

c++实现线性表增删改查

cyleft
 cyleft
发布于 2017/05/16 12:01
字数 333
阅读 185
收藏 0
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
using namespace std;

typedef struct SqList{
    int *elem;
    int length;
};
int Init_List(SqList *L);
int Insert_List(SqList *L,int ele,int num);
int Delete_List(SqList *L,int num);
void Display_List(SqList L);
int Append_List(SqList *L,int ele);
int Chanege_List(SqList *L,int ele,int num);
int Find_List(SqList *L,int num);
int main()
{
    SqList L1;
    int a;
    Init_List(&L1);
    cout<<"---append---"<<endl;
    cout<<"---delete---"<<endl;
    cout<<"---change---"<<endl;
    cout<<"--- find ---"<<endl;
    cout<<"---insert---"<<endl;
    cout<<"---display---"<<endl;
    while(1){
        scanf("%d",&a);
        switch(a){
            case 1:
                Append_List(&L1,20);
                break;
            case 2:
                Delete_List(&L1,2);
                break;
            case 3:
                Chanege_List(&L1,2,2);
                break;
            case 4:
                Find_List(&L1,2);
                break;
            case 5:
                Insert_List(&L1,9,3);
                break;
            case 6:
                Display_List(L1);
                break;
        }
    }
    return 0;
}
/*=====初始化=====*/
int Init_List(SqList *L){
    L->elem = new int [MAX_SIZE];
    if(!L->elem) {return -1;}
    L->length = 5;
    for(int i=0;i<L->length;i++){
        L->elem[i] = i;
    }
    return 1;
}
/*=====追加=====*/
int Append_List(SqList *L,int ele){
    int i,j;
    L->length++;
    L->elem[L->length-1] = ele;
}
/*=====删除=====*/
int Delete_List(SqList *L,int num){
    printf("\dlete...\n");
    int i,j;
    for(i=num-1;i<=L->length;i++){
        L->elem[i]=L->elem[i+1];
    }
    L->length = L->length - 1;
    printf("insert %d is OK...\n\n\n");
}
/*=====修改=====*/
int Chanege_List(SqList *L,int ele,int num){
    L->elem[num] = ele;
}
/*=====查询=====*/
int Find_List(SqList *L,int num){
    cout<<"L"<<"["<<num<<"]"<<"="<<L->elem[num-1]<<endl;
}
/*=====插入=====*/
int Insert_List(SqList *L,int ele,int num){
    printf("\ninsert...\n");
    int i,j;
    L->length = L->length + 1;
    for(i=L->length;i>=num;i--){
        L->elem[i-1]=L->elem[i-2];
    }
    L->elem[num-1] = ele;
    printf("insert %d is OK...\n\n\n",ele);
}

/*=====显示=====*/
void Display_List(SqList L){
    printf("===display===\n");
    for(int i=0;i<L.length;i++){

        printf("%d`",L.elem[i]);
    }
    printf("\n");
}

 

© 著作权归作者所有

cyleft
粉丝 1
博文 30
码字总数 9912
作品 0
九江
程序员
私信 提问
使用MFC实现数据库信息显示和增删改查

【业务需求】 一、功能需求 1、根据提供的UI原型设计界面,界面种类主要是两类界面,一类是检索信息的主界面(TreeCtrl+ListCtl),另一类是检索的详细信息展现页面(Edit、时间控件)用于增...

yagerfgcs
2017/10/29
292
0
基于编程类(能够编译学生代码)的在线考试系统

基于在线考试系统需求 技术需求:需用ssh框架编写(也可只用一种),数据库为MySQL,eclipse/myeclipse开发; 功能需求:老师和学生的登录与注册;老师对学生和试卷管理(增删改查);学生可查...

Orient0109
2016/04/30
106
0
我有一年都没上班了.求各位看技能帮忙估个月薪

工作一年后回学校.现在已经离校.然后技术有提升.迷茫薪资该要多少 熟悉c了解c++ 部分web渗透技术和经验 熟悉java 深入了解jvm原理 一定阅读openjdk(虚拟机部分除外)源码和jdk api(包括nativ...

programme_fancier
2016/03/29
10K
47
敢问c++已经快淘汰了吗

1.学c++成本太大,找工作却太难 2.需求太少,待遇太低 3.行业跨度大。做界面的,做算法的,做逻辑的,做驱动的。。 做了一个行业,进入另外一个行业几乎是重头开始。不想php, java,做来做去...

稀饭桶子
2016/08/13
6K
27
C#转C++的一点分享

从C#转C++有段时间了,一直想分享点什么,但又不太好意思分享,毕竟自己做C++的时间不太长,最近感觉自己已能胜任现有工作,想分享的想法又强了点,前几天看到这样一篇博客《那些年·我们读过的专业...

爱情经纬线
2014/01/17
4.1K
11

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部