/*使用尾插法建立单链表,并返回指向单链表的头结点的指针*/
Node *CreateAtTail(DataType a[],int n)
{
int i;
Node *first,*s,*r;
first=InitList(); //初始化单链表
r=first;
for(i=0;i<n;i++)
{
s=(Node *)malloc(sizeof(Node));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
return first;
}
/*按位查找,查找单链表中第i个结点,并将此结点的值返回,若没有标号为i的结点,返回-1*/
DataType Get(Node *first,int i)
{
Node *p;
int count=0;
/**************Begin***************/
p=first;
while(p->next!=NULL&&count<i)
{
p=p->next;
count++;
}
if(count==i)
return p->data;
else
return -1;
/**************End****************/
}
/*按值查找,查找单链表中值为x的结点的序号,并返回此序号,找不到,返回0*/
int Locate(Node *first,DataType x)
{
Node *p = first->next;
int count=1;
/**************Begin***************/
while(p!=NULL&&p->data!=x)
{
p=p->next;
count++;
}
if(p!=NULL)
{
return count;
}
else
return 0;
/**************End****************/
}
单链表元素查找educoder
最新推荐文章于 2024-08-28 22:01:24 发布