C语言作业2爱吃窝窝头2023-11-302023-11-30//2022.9.16作业,链式表取元素#include <stdio.h>#include <stdlib.h>typedef struct link{ int data;//代表数据域 struct link *next;//代表指针域,指向后继元素}link;//link为节点名,每个节点都是一个link结构体//定义头指针link *L;//初始化链表void Initlink(){ L=(link*)malloc(sizeof(link));//创建首元节点 L->next=NULL;//创建头指针}//创建单链表void creatlink(int n){ link *p; Initlink(); int i; for(i=1;i<=n;i++){ p=(link*)malloc(sizeof(link)); scanf("%d",&p->data); p->next=L->next; L->next=p; }}//遍历(输出访问)void output(){ link *p; p=L->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; }}//按值查找int getlink(int i){ link *p; p=L; while(p->data!=i&&p) { p=p->next; } return p->data;}//按序号查找int Getlink(int i){ link *p; p=L; int j=0; while(j<i&&p){ p=p->next; j++; } if (j>i||!p||i==0) { printf("查找的值不存在"); exit(0); } return p->data;}void main(){ int n,i,j; Initlink(); printf("请输入元素个数:"); scanf("%d",&n); printf("请输入元素:"); creatlink(n); printf("输出结果:"); output(); printf("\n输入要找的值:"); scanf("%d",&i); printf("返回查找的值:"); printf("%d",getlink(i)); printf("\n输入要找的值的序号:"); scanf("%d",&j); printf("返回查找的值:"); printf("%d",Getlink(j));}