1楼:匿名用户
#include
int stack[100],p; //定义堆栈 p为栈顶指针
int n,a;
int main()
else
}return 0;}
编写程序求:给出一个整数n,一个数组{a1,a2,...,an},将n表示成数组中若干项的和,写出所有的可能。
2楼:匿名用户
递归就可以解决,给你写个递归式吧;调用方法如下int a[6]=;
int chose[6]=;
de***pose( a,5,0,10,chose,0);
void print( int *chose , int n )//参数分别是,背包数组,数组最大下标,当前选到的第k个元素,要求解的和,已选的结果,已选结果的下标
void de***pose( int *array , int max , int k , int subn , int *chose , int c )
for( int i = k ; i <= max ; ++i )}
3楼:匿名用户
程序我就不写了,麻烦,思路:所有数相加为n,所有数-1相加为n,知道a为 n,取值即可。
4楼:匿名用户
先排序,如果n比较小,暴力搜索。如果n比较大,用回溯法可以
有个java程序设计的题,求答案 试写一算法,实现顺序表元素的逆置,即 ( a1,a2,…,an ) 逆置为 ( an,an-1,
5楼:匿名用户
使用倒置循环输出即可for(int i=n,i>0,i--),这个是投机取巧的!你只说是倒置而已,没有顺序的
6楼:匿名用户
import java.util.list;
import java.util.arraylist;
public class inversionlist {public list getinversionlist(arraylist list){
编写程序,实现从键盘输入一个正整数,输出该正整数的位数。
7楼:阳光上的桥
什么语言,c吗,c这样写:
scanf("%d",&x);
n=0;
while(x)
8楼:万里云菲千里
/* 写程序用输出一个由用户输入的正整数的位数,例如26的位数为2;2341的位数为4。*/#include "stdio.h"
void main()
printf("sum是%d位数\n",i);
}正确的
数据结构栈和数列题目 50
9楼:匿名用户
=p->next->next;
2、b 用链表的话,可以动态分配空间,因此只要考虑是否为空,不会出现满的情况。
3、a 此题目是求子串的问题,意思是求主串第5个开始长度为9的子串
4、b 其实b***括了c和d答案,搞清先序、后序的概念应该不难。
5、b 此题相当一个等比数列,1+3+9+27=40 和完全三叉树的概念
1、2n, n+1 此题考的是线索二叉树部分,其中除根结点外所有的结点都必须用指针域连接,应该用到n-1所以当然有n+1个没有被用到。
2、cba 其实这个题目和前面的那个选择题相似,画出二叉树就只有右孩子的二叉树
3、i=i+1, j=0; 就是子符串的朴素算法
4、abcde为层序,画链式很简单,先序:abdec,中序:dbeac后序:debca
5、方程1:n0+n1+n2=n 方程2:n1+2*n2=n-1 得n2=n0-1, 这一问和上面一样同样是n-1个,但是此处应该写成:2*n0+n1-1
6、最少为深度k-1的树再加一个 即:2^(k-1)
7、和前面一样
8、以2为底的log128求整数就行,第二问,三个方程解三个未知数,
方程1:n0+n1+n2=128 方程2:n1+2*n2=128-1 方程3:n1=1 (对于完全二叉树且128为偶数)
9、先画出来,再写,答案:debca
有一个线性表(a1,a2,...,an),采用带头结点的单链表l存储.设计一算法将其就地逆置.............急急急
10楼:匿名用户
#include "stdio.h"
#include "string.h"
#include "ctype.h"
#include "stdlib.h"
#include "io.h"
#include "math.h"
#include "time.h"
#define ok 1
#define error 0
#define true 1
#define false 0
#define maxsize 20 /* 存储空间初始分配量 */
typedef int status;/* status是函数的类型,其值是函数结果状态**,如ok等 */typedef int elemtype;/* elemtype类型根据实际情况而定,这里假设为int */
status visit(elemtype c)
typedef struct node
node;
typedef struct node *linklist; /* 定义linklist */
/* 初始化顺序线性表 */
status initlist(linklist *l)
/* 初始条件:顺序线性表l已存在。操作结果:若l为空表,则返回true,否则返回false */
status listempty(linklist l)
/* 初始条件:顺序线性表l已存在。操作结果:将l重置为空表 */
status clearlist(linklist *l)
(*l)->next=null; /* 头结点指针域为空 */
return ok;
}/* 初始条件:顺序线性表l已存在。操作结果:返回l中数据元素个数 */
int listlength(linklist l)
return i;
}/* 初始条件:顺序线性表l已存在,1≤i≤listlength(l) */
/* 操作结果:用e返回l中第i个数据元素的值 */
status getelem(linklist l,int i,elemtype *e)
if ( !p || j>i )
return error; /* 第i个元素不存在 */
*e = p->data; /* 取第i个元素的数据 */
return ok;
}/* 初始条件:顺序线性表l已存在 */
/* 操作结果:返回l中第1个与e满足关系的数据元素的位序。 */
/* 若这样的数据元素不存在,则返回值为0 */
int locateelem(linklist l,elemtype e)
return 0;}
/* 初始条件:顺序线性表l已存在,1≤i≤listlength(l), */
/* 操作结果:在l中第i个位置之前插入新的数据元素e,l的长度加1 */
status listinsert(linklist *l,int i,elemtype e)
if (!p || j > i)
return error; /* 第i个元素不存在 */
s = (linklist)malloc(sizeof(node)); /* 生成新结点(c语言标准函数) */
s->data = e;
s->next = p->next; /* 将p的后继结点赋值给s的后继 */
p->next = s; /* 将s赋值给p的后继 */
return ok;
}/* 初始条件:顺序线性表l已存在,1≤i≤listlength(l) */
/* 操作结果:删除l的第i个数据元素,并用e返回其值,l的长度减1 */
status listdelete(linklist *l,int i,elemtype *e)
if (!(p->next) || j > i)
return error; /* 第i个元素不存在 */
q = p->next;
p->next = q->next; /* 将q的后继赋值给p的后继 */
*e = q->data; /* 将q结点中的数据给e */
free(q); /* 让系统**此结点,释放内存 */
return ok;
}/* 初始条件:顺序线性表l已存在 */
/* 操作结果:依次对l的每个数据元素输出 */
status listtraverse(linklist l)
printf("\n");
return ok;
}/* 随机产生n个元素的值,建立带表头结点的单链线性表l(头插法) */
void createlisthead(linklist *l, int n)
}/* 随机产生n个元素的值,建立带表头结点的单链线性表l(尾插法) */
void createlisttail(linklist *l, int n)
r->next = null; /* 表示当前链表结束 */
}int main()
k=listlength(l); /* k为表长 */
for(j=k+1;j>=k;j--)
printf("依次输出l的元素:");
listtraverse(l);
j=5;
listdelete(&l,j,&e); /* 删除第5个数据 */
printf("删除第%d个的元素值为:%d\n",j,e);
printf("依次输出l的元素:"); listtraverse(l);
i=clearlist(&l);
printf("\n清空l后:listlength(l)=%d\n",listlength(l));
createlisthead(&l,20);
printf("整体创建l的元素(头插法):");
listtraverse(l);
i=clearlist(&l);
printf("\n删除l后:listlength(l)=%d\n",listlength(l));
createlisttail(&l,20);
printf("整体创建l的元素(尾插法):");
listtraverse(l);
return 0;}
11楼:等你爱你惜你
#include
#include
typedef int elemtype;
typedef struct node
lnode,* linklist;
linklist initlist(linklist l);//申请节点空间
linklist input(linklist l);//用于输入数据
void prinlink(linklist l);//输出数据void reverse(linklist l);//逆置链表main()
linklist initlist(linklist l)//申请节点空间
linklist input(linklist l)//输入数据return l;//返回链表
}void prinlink(linklist l)//打印链表}void reverse(linklist l)//逆置链表}