数据结构编程题

编程实现:建立一个单链表,通过键盘向链表输入n个元素,并查找输出链表中的第i个数据元素。
源程序:
运行结果:(测试数据要全面)

编程实现:从键盘输入一个表达式,判断表达式的括号是否匹配。(例如表达式2+((c-d)*6-(f-7)*a)/6的括号是匹配的,表达式a-((c-d)*6-(s/3-x)/2的括号不匹配)
源程序:
运行结果: 源程序和运行结果要完整。!谢谢

// å…³é”®éƒ¨åˆ†éƒ½ç»™äº†ï¼Œå‰©ä¸‹ä¹Ÿå°±å·®ä¸ªç¬¦å·ï¼Œç»™åˆ†å§
typedef struct LNode{
    char* elem;
    struct LNode* next;
}LNode,*LinkList;

void Find(LinkList L,int n,int i){
L = new LNode;
s = new LNode;
L->next = NULL;
r = L;
if(i>n || i<0) return;
while(n!=0){
s->elem = ä½ è¦è¾“入的数据;
r->next = s;
r = s;
n--;
}
LNode* p = L;
int j = 0;
while(p&&j<i){
p = p->next;
j++;
}
if(!p || j>i)
return;
输出p->elem;
}

// *****************************************************
bool Check(char* str){
InitStack(S);
i = 0;
while(str[i] != '\0'){
switch(str[i]){
case '(': Push(S, '(');break;
case '[': Push(S, '[');break;
case '{': Push(S, '{');break;
case ')': Pop(S, e);
if(e != '(') return false;break;
case ']': Pop(S, e);
if(e != '[') return false;break;
case '}': Pop(S, e);
if(e != '{') return false;break;
default break;
}
i++;
if(!IsEnpty(S)){
cout<<不匹配;
return false;
}
else{
cout<<匹配;
return ok;
}
}追问

什么符号?运行OK的话 ,马上给分。我对这数据结构真心脑子不够用

追答

你要直接运行肯定是不行的。栈结构你要声明一下,剩下无外乎少个’‘或者;之类的。最核心的我都给了。如果直接看函数是没有问题的,你在添加栈的声明,加个main就OK了。我给的是你两个程序,用************************隔开了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-13
严蔚敏的数据结构与算法那本书上有例题。一样的。
相似回答