数据结构c语言版答案(求《数据结构》(C语言,第二版) 严蔚敏、吴伟民主编,清华大学出版社 课后习题答案)
本文目录
- 求《数据结构》(C语言,第二版) 严蔚敏、吴伟民主编,清华大学出版社 课后习题答案
- 胡学钢数据结构c语言版答案
- 下面这是严蔚敏《数据结构C语言版》习题集6.36的答案,这是类C,还是纯C语言,还是C++
- 关于数据结构的题目,求答案,要用C语言编写
- C语言数据结构,下图第3题,选什么,为什么,谢谢
- 求《数据结构》(C语言版) 习题答案 严蔚敏,李冬梅,吴伟民编著的人民邮电出版社,不是清华的
求《数据结构》(C语言,第二版) 严蔚敏、吴伟民主编,清华大学出版社 课后习题答案
http://wenku.baidu.com/link?url=lgbSL1li23XL81V6mmtg96zmQxZtLoMkYC5-wmTox3c-s9Pk6r0MyGk1N6YqJu-Fya9-LrzhksZfVTfM0R09K9kzLVq9d4_AtX-ZXlPWuZC
胡学钢数据结构c语言版答案
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
一、数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。逻辑结构包括:
1.集合结构;2.线性结构;3.树形结构;4.图形结构
二、数据的物理结构:指数据的逻辑结构在计算机存储空间的存放形式。
数据的物理结构是数据结构在计算机存储器中的具体实现,是逻辑结构的表示(又称存储映像),它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。
数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)。当数据元素有若干个数据项组成时,位串中与个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。
关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。
下面这是严蔚敏《数据结构C语言版》习题集6.36的答案,这是类C,还是纯C语言,还是C++
基本上就是C语言,返回值它直接写了一个Status,程序里的返回值是TRUE和FALSE,如果把STATUS改成BOOL就是标准的C语言了。C语言是C++的一个子集,这个程序也可以认为是C++写的。
Status SimilarTree(BiTree& T1,BiTree& T2)这里用了引用,就不是纯C了。这本书里面的程序主要是添加了部分C++思想的C语言。
关于数据结构的题目,求答案,要用C语言编写
你的数据要看情况而定. 我是在代码里面就有了.
#include 《iostream.h》
int main()
{
int result;
int arr={0,2,4,7,35,7};
int *arr1 = new int ;
for (int i=0;i《5;i++)
{ arr1;}
for (int j=0;j《5;j++)
{
result = arr1;
if (arr1;}
}
return result;
}
C语言数据结构,下图第3题,选什么,为什么,谢谢
将四个选项的
选项 A. abcd*+-
后缀 cd* 转为中缀 c*d ,表达式展开为 ab(c*d)+-
后缀 b(c*d)+ 转为中缀 b+(c*d) ,表达式展开为 a(b+(c*d))-
后缀 a(b+(c*d))- 转为中缀 a-(b+(c*d)) ,中缀表达式就是 a-(b+c*d)
选项 B. abc+*d-
后缀 bc+ 转为中缀 b+c ,表达式展开为 a(b+c)*d-
后缀 a(b+c)* 转为中缀 a*(b+c) ,表达式展开为 (a*(b+c))d-
后缀 (a*(b+c))d- 转为中缀 (a*(b+c))-d ,中缀表达式就是 a*(b+c)-d
选项 C. abc*+d-
后缀 bc* 转为中缀 b*c ,表达式展开为 a(b*c)+d-
后缀 a(b*c)+ 转为中缀 a+(b*c) ,表达式展开为 (a+(b*c))d-
后缀 (a+(b*c))d- 转为中缀 (a+(b*c))-d ,去掉括号得中缀表达式 a+b*c-d
选项 D. -+*abcd
运算符都在操作数的前面,这是前缀表达式,不符合题目的要求.
所以,选项 B. abc+*d- 就是答案.
//C语言测试代码
//中缀表达式a-(b+c*d) 后缀表达式abcd*+- (这是选项A. abcd*+-)
//中缀表达式a*(b+c)-d 后缀表达式abc+*d- (这是选项B. abc+*d-)
//中缀表达式a+b*c-d 后缀表达式abc*+d- (这是选项C. abc*+d-)
//
#include《stdio.h》
#include《stdlib.h》
struct stack_node
{
int data;
struct stack_node *next;
};
typedef struct stack_node stack_list;
typedef stack_list *link;
//检查链表是否是空
int empty(link stack)
{
return stack==NULL?1:0;
}
//对操作数进行运算
int get_value(int op,int operand1,int operand2)
{
int result;
switch(op)
{
case ’*’:
result=operand2*operand1;
break;
case ’/’:
result=operand2/operand1;
break;
case ’+’:
result=operand2+operand1;
break;
case ’-’:
result=operand2-operand1;
break;
default:
result=0;
break;
}
return result;
}
//检查是否是操作符
int isoperator(char oneChar)
{
int result=0;
switch(oneChar)
{
case ’(’:
case ’)’:
case ’*’:
case ’/’:
case ’+’:
case ’-’:
result=1;
break;
default:
result=0;
break;
}
return result;
}
//出栈
link pop(link stack,int *value)
{
link top;
if(empty(stack))
{
*value=0;
return NULL;
}
top=stack;
*value=top-》data;
stack=top-》next;
free(top);
return stack;
}
//计算的优先级
int priority(char op)
{
int result=0;
switch(op)
{
case ’*’:
case ’/’:
result=3;
break;
case ’+’:
case ’-’:
result=2;
break;
case ’(’:
result=1;
break;
default:
result=0;
break;
}
return result;
}
//入栈
link push(link stack,int value)
{
link new_node;
new_node=(link)malloc(sizeof(stack_list));
if(!new_node)
{
return NULL;
}
new_node-》data=value;
new_node-》next=stack;
stack=new_node;
return stack;
}
int main()
{
link linkTotal=NULL;//
link linkOperator=NULL;//
char exp=“a*(b+c)-d“; //中缀表达式a*(b+c)-d 后缀表达式abc+*d- (这是选项B. abc+*d-)
//char exp=“a-(b+c*d)“; //中缀表达式a-(b+c*d) 后缀表达式abcd*+-
//char exp=“a+b*c-d“; //中缀表达式a+b*c-d 后缀表达式abc*+d-
char oneChar;
int op=0;
int pos=0;
link linkResult=NULL;//
char *str=NULL;//后缀表达式的字符串
int len=0;//字符串的长度
int count=0;
//读取表达式的字符,入栈
oneChar=exp;
while(oneChar!=’\0’)
{
//入栈前需要区分
if(isoperator(oneChar))
{
//如果是右括号’)’,将右括号入
if(oneChar==’(’)
{
linkOperator=push(linkOperator,oneChar);
}
//如果是右括号’)’,就将,
//直至遇到其配对的左括号’(“为止.
else if(oneChar==’)’)
{
while(!empty(linkOperator))
{
if(linkOperator-》data==’(’)
{
linkOperator=pop(linkOperator,&op);
break;
}
//取出
linkOperator=pop(linkOperator,&op);
linkTotal=push(linkTotal,op);
}
}
else //如果不是右括号’)’,则按照常规操作
{
if(!empty(linkOperator))
{
while(!empty(linkOperator))
{
//检查操作符的优先级
if(priority(oneChar)》priority(linkOperator-》data))
{
//
linkOperator=push(linkOperator,oneChar);
break;
}
else
{
//取出栈顶的里继续循环
linkOperator=pop(linkOperator,&op);
linkTotal=push(linkTotal,op);
}
}
if(empty(linkOperator))
{
//
linkOperator=push(linkOperator,oneChar);
}
}
else
{
//
linkOperator=push(linkOperator,oneChar);
}
}
}
else
{
//
linkTotal=push(linkTotal,oneChar);
}
pos++;
oneChar=exp;
}
//最后,检查
while(!empty(linkOperator))
{
//取出
linkOperator=pop(linkOperator,&op);
linkTotal=push(linkTotal,op);
}
while(!empty(linkTotal))
{
linkTotal=pop(linkTotal,&op);
linkResult=push(linkResult,op);
len++;
}
str=(char*)malloc(len+1);
while(!empty(linkResult))
{
linkResult=pop(linkResult,&op);
str=(char)op;
count++;
}
str=’\0’;
printf(“中缀表达式: %s\n“,exp);
printf(“后缀表达式: %s\n“,str);
free(str);
printf(“\n“);
return 0;
}
求《数据结构》(C语言版) 习题答案 严蔚敏,李冬梅,吴伟民编著的人民邮电出版社,不是清华的
计算机: 《程序设计基础》,张杰敏编,高等教育出版社 《C语言程序设计》,谭浩强编,清华大学出版社 《数据结构与算法》,王晓东编,高等教育出版社 《关系数据库与SQL语言》,黄旭明编,高等教育出版社 2004版 《数据库原理及应用教程》,陈志泊、李冬梅、王春玲编,人民邮电出版社 2002版 《操作系统》,宗大华、宗涛编,人民邮电出版社 网址:请采纳,谢谢~
更多文章:
oppor15x值不值得买(oppor15x怎么样值得购买吗)
2024年7月19日 10:25
努比亚m2青春版刷机(了机怎么办 努比亚M2/M2青春版救砖方法)
2024年5月24日 03:36
gtx1050和gtx660差距(gtx660换成gtx1050可以提高吗)
2024年7月14日 09:46
1333和1600差距大吗(电脑内存频率1600和1333差别大吗)
2024年6月4日 02:16
耕升gtx550ti(耕升GTX550TI显卡温度多少是正常的)
2024年1月17日 03:40
gtx650跑分多少正常(GTX650跑分多少,可以玩什么游戏)
2024年7月23日 10:17
诺基亚5310xm主题怎么下载(诺基亚5310图片,主题 电影 怎么从电脑上下载到手机里.急需帮助!!!!!!)
2024年7月17日 06:33
s5830白色(三星s5830白色的触摸地方是黑色还是白色就是长方形的按键 那里)
2024年1月14日 07:00