信息检索上机报告解读

发布 2022-08-24 21:57:28 阅读 4243

信息储存与检索上机报告。

一)逆波兰变换。

一、上机题目:

编写算法和程序,实现布尔检索式的逆波兰变换。

二、试验编程语言:c语言。

三、程序设计总体思路:

1、建立两个栈:算项指针栈和算符栈。

2、将表达式送入表达式数组,从左向右扫描检索提问表达式中的字符,对当前字符做如下处理:

如果是算项,将指向该算项的指针放到算项栈中。

如果是“(”则“(”无条件进算符栈,如果是“)”则将算符栈中“(”以及“(”以上的算符出栈。

如果是运算符+ -将他们与算符栈栈顶算符进行比较,如果优先级高于那个算符,将此算符进栈。如果低于算符栈栈顶算符,则把那个算符作为树的根节点。这时算项栈栈顶指针出栈,其所指字符作为右孩子,再将此时算项栈栈顶指针出栈,作为该根节点的左孩子;再将指向该根节点的指针入算项栈。

也就是将此时的这棵树作为了一个算项。如此循环直到表达式数组最后一个运算符为终止符“﹒”一棵表达式二叉树建立完成。

3、后序遍历此二叉树,显示逆波兰表达式。

四、程序源**。

#include ""

#include ""

#include<>

#include<>

typedef structsq;

void copystr(char *a,char *b)

int i=0;

dowhile(a[i]!=0');

b[i]='0';

void voidsq(sq *s)

s->top=-1;

int ifempty(sq *s)

return(s->top==-1);

void push(sq *s,char *c)

if(s->top==19)

printf("over flow");

elsechar *pop(sq *s)

if(ifempty(s))

elsereturn(s->s[s->top--]

int judge(char *c)

if(c[1]==0')

switch(c[0])

elsereturn(1);

void write(char *a,char *b,char *c)

strcat(a,c);

strcat(a,b);

int seek(char *c,int start)

int signal=1;

for(start=start++;c[start]!=0'&&signal!=0;start++)

if(signal==0)

return(start-1);

elsevoid fb(sq *a,sq *b)

for(;!ifempty(a);)

char *rewrite(char *a)

sq front;

sq back;

int i,j,k,flag=0;

char *result;

char mid[20];

voidsq(&front);

voidsq(&back);

for(i=0;a[i]!=0';)

else if(a[i]!=

fb(&back,&front);

for(;>2;)

if(flag==1)else

result=

return(result);

void main()

char re[20];

char a[20];

printf("请输入算式:");

scanf("%s",a);

copystr(rewrite(a),re);

printf("逆波兰式:%s",re);

信息检索上机实践报告

课题 导电塑料材料的研制。老师 胡静学生 1 序言。1.1 中文检索词 塑料导电研制 1.2 index words in english plastic conductive research 注释 共选用了6种数据库,包括中文数据库3个,外文数据库2个,搜索引擎1个。2 检索结果。2.1 中文科...

信息检索上机

姓名学号 1.简述布尔逻辑检索技术的种类,各表示什么含义,分别用什么来表示?a.逻辑 与 用 或 and 表示少数用 表示交集,缩小搜索范围 b.逻辑 或 用 或 or 表示。表并列关系,扩大搜索范围 c 逻辑 非 用 或 not 表示。表排除概念,不包含。缩小搜索范围。2.信息检索不是一蹴而就的,...

信息检索上机

姓名学号 简述布尔逻辑检索技术的种类,各表示什么含义,分别用什么来表示?a.逻辑 与 用 或 and 表示少数用 表示交集,缩小搜索范围 b.逻辑 或 用 或 or 表示。表并列关系,扩大搜索范围 c 逻辑 非 用 或 not 表示。表排除概念,不包含。缩小搜索范围。信息检索不是一蹴而就的,请分析检...