学生姓名:
实验日期:
实验任务:采用顺序存储或链式存储,开卷考试实现字符串的替换功能(例如,将所有串中所有的ab替换成1234,或f等);
实验原理:串的顺序存储和链式存储,字符串的替换,求串的长度,输出串。
实验源程序:
#include<stdio.h>
#include<malloc.h>
逊色的近义词typedef struct snode
{
char data;
struct snode *next;
}LiString;
void StrAssign(LiString * &s,char t[])
{
int i;
LiString *r,*p;
s=(LiString *)malloc(sizeof(LiString));
s->next=NULL;
r=s;
for(i=0;t[i]!='\0';i++)
{
p=(LiString *)malloc(sizeof(LiString));
p->data=t[i];
p->next=NULL;
r->next=p;r=p;
卢中南楷书
}
}
int StrLength(LiString *s)
{
int i=0;
LiString *p=s->next;
while(p!=NULL)
{
i++;
p=p->next;
}
return i;
}
void Repl(LiString * &s)
{
LiString *p=s->next,*q;
int find=0;
while (p->next!=NULL && find==0)
{
if(p->data=='a' && p->next->data=='b')
{
p->data='x';p->next->data='z';
q=(LiString *)malloc(sizeof(LiString));
q->data='y';q->next=p->next;p->next=q;
楹联是什么意思
find=1;
}
el p=p->next;
}
}
void DispStr(LiString *s)
{
LiString *p=s->next;
while(p!=NULL)
{
printf("%c",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
LiString *s,*s1;孙膑和孙武是什么关系
printf("(1)建立串s和s1\n");
StrAssign(s,"abcdefgh");
StrAssign(s1,"xyz");
printf("(2)输出串s:\n");
DispStr(s);
printf("(3)串s的长度为:%d\n",StrLength(s));
printf("(4)输出串为s2:\n");
Repl(s);
DispStr(s);
}
实验结果截图:
实验任务:采用三元组存储稀疏矩阵,法人代表证明书实现矩阵的转置功能;
实验原理:稀疏矩阵的三元组表示,求三元组表示的转置矩阵,输出三元组表示。
实验源程序:
#include<stdio.h>
typedef int Elem;
#define Maxsize 100
#define M 5
#define N 5
typedef struct
{
int r;
int c;
Elem d;
}Tupnode;
typedef struct
{
int rows;
int cols;
int nums;
Tupnode data[Maxsize];
}Tsmatrix;
void Creatmat(Tsmatrix &t,Elem t1[M][N])
{ int i,j;
t.rows=M;
t.cols=N;
t.nums=0;
红灯行绿灯停 for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
if(t1[i][j]!=0)
{
t.data[t.nums].r=i;
t.data[t.nums].c=j;
t.data[t.nums].d=t1[i][j];
t.nums++;
}
}
}
void Dismat(Tsmatrix t)
{
int i;
if(t.nums<=0)
return ;
printf("\t%d\t%d\t%d\n",t.ls,t.nums);
printf(" \n");
for(i=0;i<t.nums;i++)
printf("\t%d\t%d\t%d\n",t.data[i].r,t.data[i].c,t.data[i].d);
}
void Trantat(Tsmatrix t,Tsmatrix &ta)
{
int p=0,q=0,w;
ta.ls;
ta.ws;
ta.nums=t.nums;
if(t.nums!=0)
怎么赚点小钱 {
for(w=0;w&ls;w++)
for(p=0;p<t.nums;p++)
if(t.data[p].c==w)
{
ta.data[q].r=t.data[p].c;
ta.data[q].c=t.data[p].r;
ta.data[q].d=t.data[p].d;
q++;
}
}
}
void main()
{ Tsmatrix t,ta;
Elem t1[M][N]={ {0,0,3,0,0},{0,2,0,0,0},{1,0,0,0,0},{0,0,0,5,0},{0,0,0,0,6} };
Creatmat(t,t1);
printf("t的三元组:\n");
Dismat(t);
Trantat(t,ta);
Dismat(ta);
}