#include <stdio.h>
#include <cstdlib>
typedef struct Node{
int data;
struct Node *next;
} Node,*LinkList;
void InitNode(LinkList &L){//初始化
L=new Node;
L->data=0;
L->next=NULL;
}
void CreatNode(LinkList &L){//尾插法创建链表
int tempnum;
Node *s=L;
scanf("%d",&tempnum);
while(tempnum>=0){
Node *p=new Node;
p->data=tempnum;
p->next=NULL;
s->next=p;
s=p;
scanf("%d",&tempnum);
L->data++;//存放结点个数
}
}
void SearchBackNode(LinkList L,int index){
if(index>L->data||index<=0){
printf("NULL");
return ;
}
index=L->data-index;//找出倒着数的数的正着数位置 比如倒数第一就是正数第十
Node *p=L->next;
while(index>0){
p=p->next;
index--;
}
printf("%d",p->data);
}
int main(){
LinkList L;
InitNode(L);
int index;
scanf("%d",&index);
CreatNode(L);
SearchBackNode(L,index);
return 0;
}
求链式线性表的倒数第K项,给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。
于 2024-03-26 23:14:11 首次发布