求帮助
(1)定义单链表link2,产生10个1-200的随机整数,通过插入函数依次保存到带头结点的Link2中,并输出插入后的 link2元素序列。
(2)查找link2中第i个元素〈i由用户输入),输出第i个元素的值。
(3)调用删除函数删除 link2中第i个元素(i由用户输入),删除成功后输出删除后的link2的元素序列,删除失败则显示不存在这个数。
备注:产生随机数的方法srand((int)time(0)),rand();(随机函数所在头文件
如何添加按值查找的函数,找到并返回下标
代码
#include
#include
typedef int elemtype;
typedef struct node
{
elemtype data;
struct node *next;
}Linklist;
Linklist *initlist()
{
Linklist *head;
head=(Linklist *)malloc(sizeof(Linklist));
head->next=NULL;
return head;
}
Linklist *getnum(Linklist *h,int i)
{
Linklist *p=h;
int j=0;
while(p->next&&j {
p=p->next;j++;
}
if(i==j)return p;
else return NULL;
}
void input(Linklist *h,int i,int x)
{
Linklist *p,*s;
p=getnum(h,i-1);
s=(Linklist *)malloc(sizeof(Linklist));
s->data=x;
s->next=p->next;
p->next=s;
}
void printlinklist(Linklist *h)
{
Linklist *p=h->next;
while(p!=NULL)
{
printf("%3d",p->data);
p=p->next;
}
}
void find(Linklist *h)
int main()
{
Linklist *head;int x;
head=initlist();
srand((int)time(NULL));
for(int i=1;i<=10;i++)
{
x=rand()%100;
input(head,i,x);
}
printf("请输出单链表:");
printlinklist(head);
getchar();
return 0;
}



