• 大小: 2.67MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-09
  • 语言: 其他
  • 标签: C++  

资源简介

数据结构实验课(全部题目+全部完整代码+全部实验报告)

资源截图

代码片段和文件信息

#include
#include 

//多项式中的一项的结构

typedef  struct term{
 double coef; // 定义系数 
 int expn; // 定义指数 
        struct term* next;  // struct关键字可要可不要 
}PolyNode *pPolyNode;

//创建一个保存多项式的链表,返回指向头结点的指针。多项式按指数降序排列
pPolyNode CreatePoly()
{
 PolyNode *p*q*s*head=NULL;
 double coef;
 int expn;

 head=(pPolyNode)malloc( sizeof(PolyNode) );
 if(head==NULL)
 {
  printf(“内存分配失败!\n“);
  return NULL;
 }
 head->coef =0.0;
 head->expn =0;
 head->next =NULL;

 printf(“\n请输入多项式的系数和指数(输入0 0结束):\n“);
 //scanf(“%lf%d“&coef&expn);
 printf(“请输入系数:“);
 scanf(“%lf“&coef);
 printf(“请输入指数:“);
 scanf(“%d“&expn);


 while( (long)coef !=0 && expn !=0 )
 {
  s = (pPolyNode)malloc(sizeof(PolyNode));
  s->coef = coef;
  s->expn = expn;
  
  q=head->next ;
  p=head;
  while(q && expn expn  )
  {
   p=q;
   q=q->next;
  }

  if(q== NULL || expn > q->expn )
  {
   p->next =s;
   s->next =q;
  }
  else
  {
   q->coef+=coef;
  }
  printf(“请输入系数:“);
  scanf(“%lf“&coef);
  printf(“请输入指数:“);
  scanf(“%d“&expn);
 }
 return head;

}

//将多项式逆置按升幂排列

pPolyNode  Reverse(pPolyNode head)
{
 PolyNode *p*q*t;
 p=NULL;
 q=head->next;
 while( q!=NULL )
 {
  t=q->next;
  q->next =p;
  p=q;
  q=t;
 }
 head->next =p;
 return head;
}
//两个多项式相乘
pPolyNode multiply(pPolyNode ApPolyNode B)
{
 PolyNode *pa*pb*pc*u*head;
 int k maxExp;
 double coef;


 head=(pPolyNode)malloc( sizeof (PolyNode) );
 if(head==NULL)
 {
  printf(“内存分配失败!\n“);
  return NULL;
 }

 head->coef=0.0;
 head->expn =0;
 head->next =NULL;
 
 if(A->next !=NULL && B->next != NULL)
 {
  maxExp=(A->next) ->expn +(B->next )->expn ;
 }
 else
 {
  return head;
 }
 pc=head;
 B=Reverse (B);

 for(k=maxExp; k>=0; k--)
 {
  pa = A->next ;
  while(pa != NULL && pa->expn >k)
   pa=pa->next ;
  
  pb = B->next ;
  while( pb != NULL && pa != NULL && (pa->expn + pb->expn) < k )
   pb=pb->next;

  coef=0.0;
  while(pa != NULL && pb != NULL )
  {
   if( (pa->expn +pb->expn )==k )
   {
    coef+=pa->coef * pb->coef;
    pa=pa->next;
    pb=pb->next;
   }
   else
   {
    if(( pa->expn  +  pb->expn ) > k )
    {
     pa=pa->next;
    }
    else
    {
     pb=pb->next;
    }
   }
  }
  if( coef != 0.0 )
  {
   u=(pPolyNode)malloc(sizeof(PolyNode));
   u->coef =coef;
   u->expn =k;
   u->next =pc->next;
   pc->next=u;
   pc=u;
  }
 }
 B=Reverse(B);
 return head;
 
}


void Printpoly(pPolyNode head)
{
 PolyNode *p=head->next;

 while(p)
 {
  printf(“%1.1f“p->coef);
  if(p->expn )
   printf(“*x^%d“p->expn );
  if(p->next && p->next->coef >0)
   printf(“+“);
  p=p->next;
 }
}

int main()
{
 pPolyNode ABC;
 A=CreatePoly();
 printf(“A(x)=“);
 Printpoly (A);
 printf(“\n“);

 B=CreatePoly();
 printf(“B(x)=“);
 Printpoly (B);
 printf(“\n“);

 C=multiply(AB);

 printf(“C(x)=“);
 Printpoly (C);
 printf(“\n“);

 return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-05-28 10:52  实验1:一元多项式相乘\
     文件        3119  2019-05-28 10:50  实验1:一元多项式相乘\1.用链表实现一元多项式相乘.cpp
     文件      134773  2019-05-28 10:50  实验1:一元多项式相乘\1.用链表实现一元多项式相乘.exe
     目录           0  2019-05-28 10:56  实验2:迷宫问题\
     目录           0  2019-05-28 10:51  实验2:迷宫问题\bin\
     目录           0  2019-05-28 10:51  实验2:迷宫问题\bin\Debug\
     文件       88804  2019-05-28 10:51  实验2:迷宫问题\bin\Debug\迷宫.exe
     文件        1940  2019-05-28 10:50  实验2:迷宫问题\main(1表示通路).cpp
     文件     2026596  2019-05-28 10:51  实验2:迷宫问题\main(1表示通路).exe
     文件     2026576  2019-05-28 10:51  实验2:迷宫问题\main.exe
     目录           0  2019-05-28 10:51  实验2:迷宫问题\obj\
     目录           0  2019-05-28 10:51  实验2:迷宫问题\obj\Debug\
     文件       86685  2019-05-28 10:51  实验2:迷宫问题\obj\Debug\main.o
     文件        1068  2019-05-28 10:50  实验2:迷宫问题\迷宫.cbp
     文件         164  2019-05-28 10:50  实验2:迷宫问题\迷宫.depend
     文件         358  2019-05-28 10:50  实验2:迷宫问题\迷宫.layout
     目录           0  2019-05-28 10:50  实验3:霍夫曼编码\
     文件      197845  2019-05-28 10:50  实验3:霍夫曼编码\-361c723c8e5de72f.jpg
     文件      226680  2019-05-28 10:50  实验3:霍夫曼编码\-7cd36c4ea8f99412.jpg
     文件         176  2019-05-28 10:50  实验3:霍夫曼编码\BiTree .h
     文件        6744  2019-05-28 10:50  实验3:霍夫曼编码\CodeFile.txt
     文件        1627  2019-05-28 10:50  实验3:霍夫曼编码\CodePrin.txt
     目录           0  2019-05-28 10:51  实验3:霍夫曼编码\Debug\
     文件       21297  2019-05-28 10:51  实验3:霍夫曼编码\Debug\6.41.obj
     文件       21212  2019-05-28 10:51  实验3:霍夫曼编码\Debug\6.42.obj
     文件       33349  2019-05-28 10:51  实验3:霍夫曼编码\Debug\6.43.obj
     文件      161712  2019-05-28 10:51  实验3:霍夫曼编码\Debug\6.47.obj
     文件      161690  2019-05-28 10:51  实验3:霍夫曼编码\Debug\6.49.obj
     文件      158607  2019-05-28 10:51  实验3:霍夫曼编码\Debug\6.65.obj
     文件       32930  2019-05-28 10:51  实验3:霍夫曼编码\Debug\6.69.obj
     文件      260626  2019-05-28 10:51  实验3:霍夫曼编码\Debug\fun_huffman.obj
............此处省略33个文件信息

评论

共有 条评论