软件技术基础第四次上机作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;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);
}
}