3、7×(5+77)/2+6×9
九、有如下稀疏矩阵 1 2 3 4 5
1
2
3 8 0 2 0 0
4 0 0 0 0 0
5 0 0 0 0 0
6 0 0
7 0 1
0 0 7 0 0 0
0 0 0 9
11 0 0 0
0 0
1、给出顺序存储的稀疏矩阵类型定义(包括三元组定义) 2、给出链接存储的稀疏矩阵类型定义(包括三元组结点定义) 2、给出此稀疏矩阵的三元组数组的存储结构图。
十、广义表:A(a,(b,c,d),(#),((e,f),g))
要求1:画出此广义表的图形表示。
要求2:画出此广义表带表头附加结点的存储结构。 要求3:此广义表长度:4 ;此广义表深度: 3 。
要求4:会用求广义表长度和求广义表深度算法进行递归过程的推导。
十一、使用栈在计算机语言的编译过程中进行语法检查,只检查C++程序中的花括号、方括号、圆括号是否配对,算法:
试分析流程图后对下面算法中横线上空缺的语句进行填充,并在//符号后对语句进行文字说明,将填充的内容填入到程序中的字母序列中。
int BracketsCheck(char* fname) {
13
Stack a; InitStack(a); char ch;
14
while(ifstr>>ch) { }
if( F: StackEmpty(a) ){
cout<<\switch(ch) { }
case'{': case'[': case'(':
Push(a,ch); break;
//A: 字符进栈
case'}':
if(Peek(a)=='{')
Pop(a);
//B: 读栈顶元素进行判断 // C: 栈顶元素出栈
else
return 0;
break;
case']':
if( D: Peek(a)==’[ ‘ )
Pop(a);
else
return 0;
break;
case')':
if(Peek(a)=='(')
E:Pop(a) ;
else
return 0;
return 1;}
else{
cout<<\return 0;}
十二、已知线性表A={a1、a2、……an}采用链接存储结构,其数据域由4个值域组成,假设依次为 char code[]
char name[] int max int min
要求:
1、定义单链表结点(包括对数据域的定义); 2、从单链表的表头删除一个结点。 (参考答案)
答1: goods{ char code[5];
};
char name[15]; int max; int min;
ypedef struct t goods ElemType; struct sNode { ElemType data;
};
struct sNode *next;
答2:ElemType DeleteFirstList(struct sNode** HL) {
15
ElemType temp; struct sNode* p=*HL;
if(*HL==NULL){
}
}
printf(\exit(1);
*HL=(*HL)->next; temp=p->data; free(p); return temp;
16
十三、画出P15【算法1-3】简单选择排序的流程图,并带入5个整型数值进行排序过程分析,写出排序在执行过程中数组元素的变化。 int i,j,k,x i=0 i b[i]?b[k] i++ end Y Y N Y N 十四、教材上的习题: 17