c语言。
三。由键盘输入n个英文单词,每个单词由空格分隔。判断这n个单词是否按字典顺序排列。
基本思想:如果当前两个元素是按字典顺序排的,则整个数组是否按字典排由后面的。
元素顺序决定。
bool judge_sequence(char a[12],int n,int i)
if(i=n-2) return true;
else if(strcmp(a[i],a[i-1])<0) return judge_sequence(a[12],n,i+1);
else return false;
void main()
int i;
int n;
char a[50][12];
printf("输入单词个数");
scanf("%d",&n);
printf("输入单词");
for(i=0;i scanf("%s",a[i]);
i=0;if(judge_sequence(a[12],n,i))
printf("是按字典顺序排列的");
else printf("不是按字典顺序排列的");
四。设有a,b,c三个有序的整数链表(同为递增),删去a链表中那些既在b**现又在c**现的结点。
void delete(linklist &l1,linklist l2,linklist l3)
int tag1=0,tag2=0;
pre=l1;
p=pre->next;
while(p)
else l2=l2->next;//每次在l2中找的时候都是从上次的位置开始,恰好利用了递增。
while(l3)
if(l3->data==w)
else l2=l2->next;
if(tag1&&tag2)
pre=p;
p=p->next;
五。从键盘上输入一个整数,在整数文件“中查找,..
void found(int a)
file *fp;
fp=open(""w");
if(fp==null)
else fputs(a,fp);
fclose(fp);
数据结构。二。
判断链表前n个字符是否为回文,用栈和队列。
bool judge_stack(linklist l,int n)
stack s;
p=l->next;
i=1;while(i<=n)
if(n%2==1) p=p->next;//如果是奇数个,跳过中间元素。
while(!isempty(s))
return true;
三。计算二叉树中所有结点的平衡因子并返回非叶结点个数。
typedef struct bitnode
int num=0;//计算非叶结点个数
int getdepth(bitree t)
if(!t) return 0;
elseint getnum_bitree(bitree t)
if(!t) return 0;
elseif(t->lchild) getnum_bitree(t->lchild);
if(t->rchild) getnum_bitree(t->rchild);
四。拓扑排序。
status
toposeq
algraph
gstatus toposeq(algraph g,int new)
int indegree[maxsize];
findindegree(g,indegree);/计算所有结点入度。
initstack(s);
for(i=0;i<
if(!indegree[i]) push(s,i);/入度为0进栈。
count=0;
while(!stackempty(s))
if(count< return error;
return ok;
东北大学2023年考研程序题
c语言。试编写一个程序,显示指定文件中的内容,要求每行中显示的字符数不超过30个。基本思想 fgets a,30,fp 读30个显示30个。void print char p file fp char buffer 30 if fp fopen p,r null while fgets buffer...
东北大学2023年考研程序题
1.写出将循环单链表中结点x的直接前驱删除的算法,x为指针,且从x出发进行删除。void delete linklist l,lnode x p x while p next next x p p next q p next p next x free q 设计算法将二叉树的左右孩子互换。void ...
东北大学2023年考研程序题
c语言。输入n个数,编写递归函数,求出n个数中的最大值。基本思想 将当前数组划分为第一元素和剩下元素。第一元素与剩下元素当中的最大值就是最大元素。剩下元素成为当前数组。直到数组中只有一个元素。运行通过 include int max int a,int n if i m 1 else return ...