软件技术基础第四次上机作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件技术基础第四次上机作业

1、

源程序:

#include

#include

#include

#define maxsize 100

typedef struct

{

char str[maxsize];

int len;

}seqstring;

void strPut(seqstring*);

void strDelete(seqstring*,int,int);

void main()

{

seqstring*S;

int i,m;

S=(seqstring*)malloc(sizeof(seqstring));

printf("输入串:");

gets(S->str);

S->len=strlen(S->str);

strPut(S);

printf("删除的开始位置:");

scanf("%d",&i);

printf("删除的字符个数:");

scanf("%d",&m);

strDelete(S,i,m);

strPut(S);

}

void strPut(seqstring*S)

{

int i;

for(i=0;ilen;i++)

printf("%c",S->str[i]);

printf("\n");

}

void strDelete(seqstring*S,int i,int m)

{

char temp[maxsize];

if(i<=S->len)

{

strncpy(temp,S->str,i-1);

strcpy(temp+i-1,S->str+i+m-1);

strcpy(S->str,temp);

if(i<=S->len)

if(i+m-1<=S->len)

S->len=S->len-m;

else S->len=S->len-i+1;

}

}

结果显示:

2、源程序:

#include

#include

const int maxsize=1024; typedef char datatype; typedef struct node

{

datatype data;

struct node *lchild,*rchild; }bitree;

bitree*creattree();

void preorder(bitree*);

void swap(bitree*);

void main()

{

bitree*pb;

pb=creattree();

preorder(pb);

printf("\n");

swap(pb);

preorder(pb);

printf("\n");

}

bitree*creattree()

{

char ch;

bitree*Q[maxsize];

int front,rear;

bitree*root,*s;

root=NULL;

front=1;rear=0;

printf("按层次插入二叉树,虚节点输入'@',已结'#'束输入:\n");

while((ch=getchar())!='#')

{

s=NULL;

if(ch!='@')

{

s=(bitree*)malloc(sizeof(bitree));

s->data=ch;

s->lchild=NULL;

s->rchild=NULL;

}

rear++;

Q[rear]=s;

if(rear==1)root=s;

else

{

if(s&&Q[front])

if(rear%2==0)Q[front]->lchild=s;

else Q[front]->rchild=s;

if(rear%2==1)front++;

}

}

return root;

}

void preorder(bitree*p)

{

if(p!=NULL)

{

printf("%c",p->data);

if(p->lchild!=NULL||p->rchild!=NULL)

{

printf("(");

preorder(p->lchild);

if(p->rchild!=NULL)printf(",");

preorder(p->rchild);

printf(")");

}

}

}

void swap(bitree*p)

{

bitree*t;

if(p!=NULL)

{

t=p->lchild;

p->lchild=p->rchild;

p->rchild=t;

swap(p->lchild);

swap(p->rchild);

}

}

相关文档
最新文档