线性表操作的基本应用

#include"stdio.h"
#include"stdlib.h"


#define MAXSIZE 10
#define OK 1

#define YES 1
#define NO 0
 

 struct Sqlist
{
    int a[MAXSIZE];
    int length;
 };
 
void listlength(Sqlist *list)
{
    printf("线性表得长度:%d\n",list->length);
}

int emptylist(Sqlist list)    //判断线性表是否为空;
{
    if(list.length==0)
    {
        return YES;
    }
    else
    {
        return NO;
    }
 }
 
int initlist(Sqlist *list)
{
    list->length=0;
    return OK;
}
 
void listinsert(Sqlist *list,int num,int n)
{
    int i;
    for(i=MAXSIZE-1;i>=n;i--)
    {
        list->a[i]=list->a[i-1];
    }
    list->a[n-1]=num;
    list->length ++;
}

void printlist(Sqlist list)
{
    printf("数据:");
    for(int i=0;i<list.length;i++)
    {
        printf("%3d",list.a[i]);
    }
    
}
 
void clearlist(Sqlist *list)
{
    list->length=0;
}


int deldata(Sqlist *list,int num,int sign)
{
    int i;
    

    
    for(i=0;i<list->length;i++)
    {    
        
        if(list->a[i]==num)
        {    
            for(int k=i;k<list->length;k++)
            {
                list->a[k]=list->a[k+1];
            }
            sign=1;
        }
    }
    if(sign==1)
    {
        list->length --;
    }
    return sign;
}

void locateElem(Sqlist list,int num)
{
    int i,sign,j;
    for(i=0;i<list.length;i++)
    {
        if(num==list.a[i])
        {
            sign=1;
            j=i+1;
            break;
        }
        else
        {
            sign=0;
        }
        
    }
    if(sign==1)
    {
        printf("%d存在,在第%d位",num,j);
    }
    else
    {
        printf("%d不存在",num);
    }
}
 
 
int main()
{
    struct Sqlist list;
    int i;
    i=initlist(&list);  //初始化性表
    
    i=emptylist(list);     //判断线性表是否为空
    if(i=1)
    {
        printf("线 性 表 为 空\n");
    }
    else
    {
        printf("线 性 表 不 为 空\n");
    }
    
    for(int j=1;j<=5;j++)
    {
        listinsert(&list,j,1);
    }
    listlength(&list);   //线性表的长度  

    printlist(list);   //显示表里得数据项;
    printf("\n");
    
    clearlist(&list);
    printf("清空线性表中:\n");
    i=emptylist(list);
    if(i=1)
    {
        printf("清空成功\n");
    }
    else
    {
        printf("ERROR\n");
    }
    
    printlist(list);
    printf("\n");
    printf("加入新的数据项:\n");
    for(int j=1;j<=10;j++)
    {
        listinsert(&list,j,1);
    }
    printlist(list);
    printf("\n");
    listlength(&list);
    
    
    //删除数据
    int sign=0,num;
    printf("删除的数据:");
    scanf("%d",&num);
    getchar();
    
    sign=deldata(&list,num,sign);
    
    if(sign==0)
    {
        printf("删除得元素不存在");
    }
    else
    {
        printf("删除后:");
        printlist(list);
    }
    printf("\n");
    
    
    //查找某一元素是否存在
    printf("输入查找得元素:");
    scanf("%d",&num);
    getchar();
    locateElem(list,num);
    
    
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

军训分批(codevs 2751)

题目描述 Description某学校即将开展军训。共有N个班级。 前M个优秀班级为了保持学习优势&#xff0c;必须和3位任课老师带的班级同一批。 问共有几批&#xff1f; 输入描述 Input DescriptionN,M 老师教的其他班级&#xff08;M行&#xff09; 输出描述 Output Description批次…

前端学习(2034)vue之电商管理系统电商系统之绘制图表

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

2021-08-08

Java中对于方法和字段一共有四种访问权限&#xff1b;分别为&#xff1a; &#xff08;1&#xff09;private &#xff08;2&#xff09;public &#xff08;3&#xff09;protected &#xff08;4&#xff09;默认&#xff08;包访问权限&#xff09; 一、private 类内部能访问…

2021-08-15

1、什么是多态性&#xff1f;什么是虚拟方法调用&#xff1f; 对象的多态性&#xff1a; Person p new xx(); 此时new的对象可以为多种形态&#xff0c;但需要是person类的子类。即父类的引用指向子类的对象。 虚拟方法调用: p.eat(); 该语句在编译时会认为时调用Person类中的…

前端学习(2035)vue之电商管理系统电商系统之形成折线图

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

python中在同一个位置输出数据

import sys, timedef print_data():for i in range(5):sys.stdout.write(str(i) \r)time.sleep(1)sys.stdout.flush()if __name__ __main__:print_data() 转载于:https://www.cnblogs.com/LarryGen/p/5713000.html

context:component-scan扫描使用的use-default-filters

如下方式可以成功扫描到Controller注解的Bean&#xff0c;不会扫描Service/Repository的Bean。 <context:component-scan base-package"xx.xx.xx.controller"> <context:include-filter type"annotation" expression"org.springframework.…

2021-08-17

三位运算符 最后的连个表达式都需要为同一个类型 所以Integer会自动提升类型为Double ; 所以o1 1.0; 这种写法就不需要统一类型 第一个&#xff1a;两个i,j为两个地址&#xff1b; 第二个&#xff1a;和第三个同。 第三个&#xff1a; 再Integer类中 有静态生命一个数组存…

Redmine性能测试

Redmine部署使用有一个月了&#xff0c;反馈有时很慢。 1、查看log发现&#xff0c;事务更新后要发送Email&#xff0c;如果连接邮件服务器有问题&#xff0c;会等待超时&#xff0c;导致很慢。 2、解决发送邮件问题后&#xff0c;仍然有时慢&#xff0c;ActiveRecord显示要几百…

包装类转换基本数据类型与基本数据类型转换为包装类

包装类转换基本数据类型 基本数据类型转换为包装类 新特性&#xff1a; 自动装箱&#xff08;基本数据类型转换为包装类&#xff09;&#xff1a; 自动拆箱&#xff08;包装类转换基本数据类型&#xff09;&#xff1a; 基本数据类型、包装类向String 的转换 方式1&#xff1…

前端学习(2038)vue之电商管理系统电商系统之优化nprogress加载进度条

main.js import Vue from vue import App from ./App.vue import router from ./router import ./plugins/element.js //导入字体图标 import ./assets/fonts/iconfont.css Vue.config.productionTip false //导入全局样式 import ./assets/css/global.css import TreeTable …

Qt之Concurrent框架

简述 QtConcurrent 命名空间提供了高级 API&#xff0c;使得可以在不使用低级线程原语&#xff08;例如&#xff1a;互斥、读写锁、等待条件或信号量&#xff09;的情况下编写多线程程序&#xff0c;使用 QtConcurrent 编写的程序根据可用的处理器核心数自动调整所使用的线程数…

Eclipse中单元测试

再开发时候只需要Test即可

01-subgradients_notes

Subgradients 次梯度 S. Boyd and L. Vandenberghe Notes for EE364b, Stanford University, Winter 2006-07 April 13, 2008 1 定义 我们称一个矢量g∈Rn是函数f:Rn→R在x∈domf处的次梯度&#xff0c;如果对于所有的z∈domf满足&#xff1a; f(z)≥f(x)gT(z−x)(1)如果f是…