#include<iostream.h>
#include<stdlib.h>
typedef struct Lnode{
int key;
struct Lnode *next;
}*LinkList;
typedef struct {
LinkList elem;
int length;
}SSTable;
void CreateList(LinkList &L,int n)
{
Lnode *p;
L=(LinkList)malloc(sizeof(Lnode));
L->next=NULL;
for(int i=n;i>0;i--)
{
p=(LinkList)malloc(sizeof(Lnode));
cin>>(p->key);
p->next =L->next ;L->next =p;
}
}
void println(LinkList &L)
{
LinkList p=L->next ;
for(int i=0;p->next !=NULL;i++){
cout<<"key="<<p->key <<endl;
p=p->next ;
}
cout<<".."<<p->key <<endl;
// cout<<"key="<<L->key <<endl;
}
void CreateSt(SSTable &st,int n)
{
LinkList l;
st.length =n;
CreateList(l,n);
st.elem =l;
println(l);
}
void search(SSTable &st,int nkey){
st.elem->key =nkey;
cout<<st.elem ->key<<endl;
for(int i=st.length ;!(st.elem[i].key==nkey);--i)
{cout<<i<<"key=..........."<<st.elem[i].key<<endl;
//st.elem=st.elem->next ;
}
cout<<"结果:"<<i<<endl;
}
void main()
{
SSTable st;
CreateSt(st,3);
search(st,3);
}
本来是在c++那边的论坛发的,不过没人回我,就来这边求救!!
主要是这个函数的问题:void search(SSTable &st,int nkey){
st.elem->key =nkey;
cout<<st.elem ->key<<endl;
for(int i=st.length ;!(st.elem[i].key==nkey);--i)
{cout<<i<<"key=..........."<<st.elem[i].key<<endl;//st.elem[i].key 里面好象付不到值!!应该用什么方
//st.elem=st.elem->next ; //法实现!
}
cout<<"结果:"<<i<<endl;
}
是关于数据结构的,规定要用类似的方法做!!请帮下忙!