| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1305 人关注过本帖
标题:大家好啊 有几个问题想请教大家
只看楼主 加入收藏
yangmingym
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-6
收藏
 问题点数:0 回复次数:18 
大家好啊 有几个问题想请教大家

小妹 今天看等级考试的时候有几个问题想了很久也不会 所以上网请教一下
一. 设有算术表达式,其中包含大括号"{}",中括号"[]",试编写一个递归函数,判断表达式中的括号是否匹配.
二, 设有一个整数序列,有n个整数(0<n<100),试编写程序,小,对其从小到大进行连续编号.要求:(1)不能改变序列的顺序;(2)保留一个.
例如:输入系列为:5,3,5,7,8,3,5,10,6
则输出为: 序列- 5 3 7 8 10 6
编号- 2,1,4,5,6,3
三,设有两个有序链表,一为升序,一为降序. 试编写程序合并为一个有序链表.

搜索更多相关主题的帖子: 编写程序 等级考试 表达式 
2006-08-06 20:33
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
1.该题用栈做,将左括号压栈,碰到右括号就判断当前栈顶元素是否与之匹配,若就是不匹配,退出.否则匹配,继续比较,直到栈中为空.(此时的括号字符串也都遍历完了)匹配成功.
2.该题是静态链表,定义一个结构体数组,包括两个成员,值和位置标记(初始值可以为-1).
做遍历时,每次选中最小值,同时修改标记.
3.以任一链表做主链表.将另一链表(次链表)的结点一个一个拆开,再插入到主链表中,注意次链表的头结点,要保证每次都可以访问该链表.

倚天照海花无数,流水高山心自知。
2006-08-06 20:54
yangmingym
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-6
收藏
得分:0 

楼主可以写详细一点吗?

2006-08-07 19:55
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

再详细就是代码了.


倚天照海花无数,流水高山心自知。
2006-08-07 21:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

#include<stdio.h>
#define MAXSIZE 100
typedef int datatype;
typedef struct{
datatype a[MAXSIZE];
int top;
}sequence_stack;

init_sequence_stack(sequence_stack *st)
{
st->top=0;
}

int is_empty_stack(sequence_stack st)
{
return(st.top==0?0:1);/*为0时堆栈为空*/
}

void pop(sequence_stack *st)
{
if(st->top==0)
{
printf("The list is empty!");
exit(1);
}
st->top--;
}

void push(sequence_stack *st,datatype x)/*左括号进栈*/
{
if(st->top==MAXSIZE)
{
printf("\nThe sequence stack is full !");
exit(1);
}
st->a[st->top]=x;
st->top++;
}

int get_top(sequence_stack st)/*得到头节点*/
{
if (!is_empty_stack(st))
{
printf("The stack is empty!");
exit(1);
}
else
{
return st.a[st.top-1];
}
}

int match_kuohao(char c[])
{
int i=0;
sequence_stack s;

init_sequence_stack(&s);
while(c[i]!='#')
{
switch(c[i])
{
case'{':
case'[':
case'(':push(&s,c[i]);break;
case'}':if(is_empty_stack(s)&&get_top(s)=='{')
{ pop(&s);break;}
else return 1;/*还回1则栈不为空,即括号不匹配*/
case')':if(is_empty_stack(s)&&get_top(s)=='(')
{ pop(&s);break;}
else return 1;

case']':if(is_empty_stack(s)&&get_top(s)=='[')
{ pop(&s);break;}
else return 1;
}
i++;
}
return(is_empty_stack(s));
}


int main()
{
int leap;
char str[MAXSIZE];

gets(str);
leap=match_kuohao(str);
if(leap==0)
printf("yes! \n");
else
printf("no! \n");
return(0);
}


倚天照海花无数,流水高山心自知。
2006-08-07 21:53
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

#include<stdio.h>
#define NULL 0
typedef int datatype;
typedef struct hlink{
datatype info;
struct hlink *next;
}node;
typedef node* nodelink;

/* 头插法建立带头节点的单链表*/
nodelink tcreathlink()
{
datatype x;

node *head,*s;
head=(node*)malloc(sizeof(node));
printf("please input the datas:");
scanf("%d",&x);
while(x)
{
s=(node*)malloc(sizeof(node));
s->info=x;
s->next=head->next;
head->next=s;
scanf("%d",&x);
}
return head;
}
/*输出带头节点的单链表的值*/
void printtlink(nodelink head)
{
node *p;

p=head->next;
if(!p)
printf("\nthe hlink is empty!");
else
{
printf("\nthe value of the hlink is:\n");
while(p)
{
printf("%5d--->",p->info);
p=p->next;
}
}
printf("\n");
}

nodelink link_head12(nodelink head1,nodelink head2)/*让head1和head2的数排序*/
{
nodelink q,head3,s,p;

head3=(nodelink)malloc(sizeof(node));/*建head3表*/
head3->next=NULL;
q=NULL;
s=head1->next;
p=head2->next;
while(p&&s) /*排序*/
{
if(s->info<p->info)
{
q=s->next;
s->next=head3->next;
head3->next=s;
s=q;
}
else
{
q=p->next;
p->next=head3->next;
head3->next=p;
p=q;
}
}
if(s)
{
while(s->next!=NULL)
{
q=s;
s->next=head3->next;
head3->next=s;
s=q->next;
}
s->next=head3->next;
head3->next=s;
}
else
{
while(p->next!=NULL)
{
q=p;
p->next=head3->next;
head3->next=p;
p=q->next;
}
p->next=head3->next;
head3->next=p;
}
return head3;
}

int main()
{
nodelink head1,head2,head3;
head1=tbuildhlink();
head2=tbuildhlink();
printtlink(head1);
printf("\n");
printtlink(head2);
printf("\n");
head3=link_head12(head1,head2);/*让head1和head2的数排序*/
printtlink(head3);
printf("\n");
return(0);
}


倚天照海花无数,流水高山心自知。
2006-08-07 22:01
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

我自己也感觉头晕了,楼主,你耐心看吧,以前写的.


倚天照海花无数,流水高山心自知。
2006-08-07 22:01
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
第二个下次再写

倚天照海花无数,流水高山心自知。
2006-08-07 22:02
yangmingym
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-8-6
收藏
得分:0 
谢谢楼主 楼主辛苦了 好多哦 楼主这是第1题和第3题的?
一题就这么多 昏了 好难哦 !
感谢楼主你了!
2006-08-08 16:12
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

第二题,写的不好,只能想到这样了,望各位想个好方法.


倚天照海花无数,流水高山心自知。
2006-08-08 22:48
快速回复:大家好啊 有几个问题想请教大家
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016486 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved