(午饭)
"那么下来是:
取元素
int getelem(stalink space,int head,int i)
{
int j=0,k=head;
//判断合法性
if(i<1)return 0;
//从静态链表的第1个结点开始查第i个结点的下标
while(k!=0&&j<i){
j++;
k=space[k].cur;
}
//i超过表长
if(k==0)return 0;
//读取成功
return 1;
}
定位
int located(stalink space,int head,ElemType x){
int k;
k=space[k].cur;
while(k!=0&&space[k].data!=x)
{
k=space[k].cur;
}
//通过k的值来判断取到的是下标还是结尾
return k;
}
插入
int insert(stalink space,int head,int i,ElemType x){
int j=0,k=head,m;
//参数不合法,插入失败
if(i<1)return 0;
//从第一个结点找到第i-1个结点
while(k!=0&&j<i-1){
j++;
k=sapce[k].cur;
}
//查找失败
if(k==0)return 0;
//从备用链表中获取结点,结点的下标为m
m=allocnode(space);
//若分配空间成功
if(m!=0){
cin>>space[m].data;
space[m].cur=space[k].cur;
space[k].cur=m;
//插入成功
return 1;
}
//无可用空间
return 0;
}
删除
int deletestalink(stalink space,int head,int i){
int j=0,k=space[head].cur,m;
//参数不合法
if(i<1)return 0;
//从第一个结点找到第i-1个结点
while(k!=0&&j<i-1){
j++;
k=space[k].cur;
}
if(k==0)return 0;
//m作为第i个结点的下标
m=space[k].cur;
//删除第i个结点
space[k].cur=space[m].cur;
freenode(space,m);
//删除成功
return 1;
}
输出
void display(stalink space int head){
int i=space[head].cur;
while(i!=0){
cout<<space[i].data<<endl;
i=space[i].cur;
}
}
"那么就是这些了,感觉还是有点...,准备一天再去考核吧",我决定到."现在还早,出去走走看吧".
//2020.1.10