首页 > 其他分享 >线性表应用

线性表应用

时间:2024-09-24 21:50:03浏览次数:3  
标签:Term 线性表 int poly2 poly1 ++ result 应用

一、 线性表的定义和特点

定义: 线性表是具有相同特性的数据元素的一个有限序列,由n(n>=0)个数据元素(结点)a1,a2,a3...an组成的有限序列。

       其中数据元素的个数n定义为表的长度。

       当n=0时称为空表。

       将非空的线性表(n>0)记作:(a1,a2,...an)

       这里的数据元素ai(1<=i<=n)只是一个抽象的符号,其具体含义在不同的情况下可以不同。

线性表的逻辑特征:

       在非空的线性表,有且仅有一个开始结点a1,它没有直接前趋,而仅有一个直接后继a2;

      有且仅有一个终端结点an,它没有直接后继,而仅有一个直接前趋an-1;

      其余的内部结点ai(2<=i<=n-1)都有且仅有一个直接前趋ai-1和一个直接后继ai+1。

线性表是一种典型的线性结构。

二、 线性表的应用实例

  2.1  稀疏多项式的运算

A = ((7,0),(3,1),(9,8),(5,17))

B = ((8,1),(22,7),(-9,8))

  1. 创建一个新数组c
  2. 分别从头遍历比较a和b的每一项

             指数相同,对应系数相加,若其和不为零,则在c中增加一个新项

             指数不相同,则将指数较小的项复制到c中

    3.一个多项式已遍历完毕时,将另一个剩余项依次复制到c中即可

#include <stdio.h>
#include <stdlib.h>
//定义一个结构体来表示多项式的非零项
typedef struct{
     int exponent;//指数
     int coefficient;//系数
}Term;

void addPolynomials(Term poly1[],int size1,Term poly2[],int size2,Term result[]);
int main(){
   //示例多项式1:3x2+5x+2
   Term poly1[] = {{2,3},{1,5},{0,2}};
   int size1 = sizeof(poly1)/sizeof(poly1[0]) ;
   //示例多项式2:2x2+4x1+1
   Term poly2[] = {{2,2},{1,4},{0,1}};
   int size2 = sizeof(poly2)/sizeof(poly2[0]);
   //结果多项式的结果是两个多项式大小的和
   Term result[size1 + size2];
   int resultSize = 0;

   //执行多项式加法
   addPolynomials(poly1,size1,poly2,size2,result);

   //打印结果
   printf("Resulting Polynomial: ");
   for(int i = 0;i < resultSize;i++){
       printf("%dx^%d",result[i].coefficient,result[i].exponent);
       if(i < resultSize - 1 && result[i+1].coefficient >= 0){
           printf("+ ");
       }
   }
   printf("\n");
   return 0;
}
//实现多项式加法
void addPolynomials(Term poly1[],int size1,Term poly2[],int size2,Term result[]){
     int i = 0,j = 0,k = 0;
     //遍历两个多项式
     while(i < size1 && j < size2){
         if(poly1[i].exponent < poly2[j].exponent){
            result[k++] = poly1[i++];}
         else if(poly1[i].exponent > poly2[j].exponent){
            result[k++] = poly2[j++];}
         else{
              //相同指数,系数相加
             int sum = poly1[i].coefficient + poly2[j].coefficient;
             if (sum != 0){//系数不为零,则加到结果中
                 result[k++] = (Term){poly1[i].exponent,sum};
             }
             i++;
             j++;
       }
   }
//添加剩余的项

  while(i < size1){
      result[k++] = poly1[i++];
  }
  while(j < size2){
      result[k++] = poly2[j++];
  }

 //设置结果多项式的大小
  result[k].exponent = -1;
}

    

标签:Term,线性表,int,poly2,poly1,++,result,应用
From: https://blog.csdn.net/2301_80702982/article/details/142466181

相关文章

  • 树莓派5B -零基础应用开发系列
    树莓派5B-零基础应用开发(第一期)一、树莓派的开始1.准备工作①建议在树莓派官网下载相对应的镜像文件,树莓派镜像下载,网站如下所示:https://www.raspberrypi.org/downloads/raspberry-pi-os/②把SD卡格式化,使用SDFormatter进行开始格式化操作。③把在官网下载......
  • 软考网络工程师备考考点讲解(三):路由协议及其应用
    软考网络工程师备考考点讲解(三):路由协议及其应用在前两篇文章中,我们深入学习了OSI模型和TCP/IP协议栈。为了进一步理解网络工程中关键的通信机制,本篇将详细讲解路由协议及其应用。路由协议是网络中确保数据包能够有效地从源节点传递到目的节点的重要机制。掌握这些路由协议的工作原......
  • [JVM] 应用诊断工具之javac命令
    0引言1JDK命令:javac反编译指定类:javac-c{className}参考命令:C:\Users\xxxxxx>javap-cjava.lang.Object>"Object.txt"C:\Users\xxxxxx>javap-cjava.lang.ObjectCompiledfrom"Object.java"publicclassjava.lang.Object{p......
  • 任务3:PDF转换器的应用
    使用PDF转换器添加水印的步骤如下:选择PDF转换器:选择一个支持添加水印功能的PDF转换器,如LightPDF打开PDF文件:启动转换器,点击“打开PDF文件”选项,选择需要添加水印的PDF文件设置水印参数:在顶部菜单栏中,依次选择“文档”-“水印”-“添加”。水印类型分为文本和图片两种,根据需......
  • 【Linux】深度解析与实战应用:GCC/G++编译器入门指南
    ......
  • 介绍pytorch的基本概念及应用场景
    PyTorch的基本概念PyTorch是一个基于Python的开源机器学习(深度学习)框架,由Facebook的人工智能研究院(FAIR)开发。它以其出色的灵活性和易用性在深度学习领域广受欢迎。PyTorch的基本概念主要包括以下几个方面:张量(Tensor):张量是PyTorch最基本的数据结构,类似于多维数组,用于存储......
  • Serverless + AI 让应用开发更简单,加速应用智能化
    2024云栖大会开幕,在大会第一天,阿里云正式发布全新产品——云应用开发平台CAP。CAP拥有丰富的场景化应用模板,可以极速体验,并且具备更低的成本优势以及灵活组装等特点,成为广大开发者与企业必备的一站式应用开发平台,让应用开发更简单。阿里云云原生应用平台负责人丁宇AI被认为......
  • Serverless + AI 让应用开发更简单,加速应用智能化
    2024云栖大会开幕,在大会第一天,阿里云正式发布全新产品——云应用开发平台CAP。CAP拥有丰富的场景化应用模板,可以极速体验,并且具备更低的成本优势以及灵活组装等特点,成为广大开发者与企业必备的一站式应用开发平台,让应用开发更简单。阿里云云原生应用平台负责人丁宇AI被认......
  • 基于AI网关的智慧煤矿安全监测应用
    煤矿安全一直是矿业管理的重中之重。由于煤矿环境的恶劣与复杂性,例如工作中间环节多、设施设备多样且集中、空间狭小、环境闭塞、有害气体隐患、粉尘聚集等,针对煤矿的安全监测和防范时常面临着极大的挑战。随着AI技术的发展与普及,依托AI实现实时、高精度环境监测预警是智慧煤矿的......
  • 【触想智能】工业显示器在智慧城市中的应用市场分析
    随着智能技术的快速发展和智慧城市的不断兴起,工业显示器作为智慧城市基础设施的重要组成部分,正逐渐成为市场热点。触想工业显示器TPC-M200系列工业显示器不仅在监控、交通、能源等领域有着广泛应用,还在提升智慧城市管理和运营效率方面发挥着重要作用。下面触想智能......