用C语言编写程序 数据结构
发布网友
发布时间:2022-04-27 08:16
我来回答
共3个回答
热心网友
时间:2022-06-29 01:02
第5 题
#include<stdio.h>#include<stdlib.h>
#define MAX 256
//typedef int List[MAX];
typedef int ElemType;
typedef int Status;
#define OVERFLOW -1
#define OK 1
#define LIST_INIT_SIZE 80
#define LISTINCREMENT 10
typedef struct {
ElemType *elem;
int length;
int listsize;
} SqList;
typedef SqList List;
Status InitList_Sq( SqList* L )
{
(*L).elem = (ElemType*) malloc (LIST_INIT_SIZE*sizeof (ElemType));
if (!(*L).elem) exit (OVERFLOW);
(*L).length = 0;
(*L).listsize = LIST_INIT_SIZE;
return OK;
}
void main()
{
int ListLength(List Lx);
void GetElem(List Lx,int i,ElemType *xi);
Status InitList_Sq( SqList* L );
void ListInsert(List *Lc,int k,ElemType e);
void MergeList(List La,List Lb);
void printElem(List Lx);
List La,Lb;
int i;
InitList_Sq(&La ); InitList_Sq(&Lb );
printf("pls input length of La ,Lb\n");
scanf("%d,%d",&La.length,&Lb.length);
printf("intiating La....\n");
for(i=1;i<=La.length;i++)
scanf("%d",&La.elem[i]);
printf("intiating Lb....\n");
for(i=1;i<=Lb.length;i++)
scanf("%d",&Lb.elem[i]);
printf("values of La are:\n");
printElem(La);
printf("values of Lb are:\n");
printElem(Lb);
printf("starting union...\n");
MergeList(La,Lb);
}
void MergeList(List La,List Lb)
{
List Lc;
int i,j,k;
ElemType ai,bj;
int La_len=0,Lb_len=0;
i=j=1;k=0;
InitList_Sq(&Lc );
La_len=ListLength(La);Lb_len=ListLength(Lb);
while((i<=La_len)&&(j<=Lb_len))
{
GetElem(La,i,&ai); GetElem(Lb,j,&bj);
if(ai<=bj) {ListInsert(&Lc,++k,ai);++i;}
else {ListInsert(&Lc,++k,bj);++j;}
}
while(i<=La_len)
{
GetElem(La,i++,&ai);ListInsert(&Lc,++k,ai);
}
while(j<=Lb_len)
{
GetElem(Lb,j++,&bj);ListInsert(&Lc,++k,bj);
}
Lc.length=k;
printf("values of Lc after union:\n");
printElem(Lc);
}
void printElem(List Lx)
{
int i;
for(i=1;i<=Lx.length;i++)
{
printf("%5d",Lx.elem[i]);
if(0==i%5)
printf("\n");
}
printf("\n");
}
void GetElem(List Lx,int i,ElemType *xi)
{
if(i>0 && i<=Lx.length) *xi=Lx.elem[i];
// printf("current value get: %d\n",Lx[i]);
// printf("current value get: %d\n",xi[i]);
}
int ListLength(List Lx)
{
return Lx.length;//
}
void ListInsert(List *Lc,int k,ElemType e){
(*Lc).elem[k]=e; //printf("insert success to e=%d\n",e);
}
热心网友
时间:2022-06-29 01:03
有点懒吧,第一个题只需设置一个变量计数,从第一个节点开始与X进行比较,如果与X的值相等就返回计数器的值,如果不相等计数器的值就加一;第二个题也是挨个比较,直到比较节点的值比X大就结束循环;第三个也差不多,把节点的值模上2,如果等于0就是偶数,后面的也差不多的,学这个是需要自己动脑的,不要像我一样,不然以后会没出路的
热心网友
时间:2022-06-29 01:03
编写一个加密程序:
假设原文为字符序列C0C1C2.Cn-1,加密后所产生的密文已经编译运行通过,不过你的例子有问题:
key=3
原文为abcd
密文应该为dbac