数据结构是那种离开书就不会写代码的情况,求大佬教方法如何解决这种情况
#include<stdio.h>
#include<stdlib.h>typedef int DataType;
typedef struct node{ DataType data; struct node *link; }LinkNode,*LinkList; void printList(LinkNode*first){ if(first==NULL) return; printf("%d\n",first->data); printList(first->link); } ; //用尾插法插入单链表 void creatListRear(LinkList&last,DataType endTag){ DataType val; printf("请输入结点元素:"); scanf("%d",&val); if(val==endTag){ last = NULL; }else{ last=(LinkNode*)malloc(sizeof(LinkList));//创建新结点 if(!last){ printf("储存分配错误!\n"); exit(1); } last->data=val; creatListRear(last->link,endTag);//递归创建后续链表 } } //长度 int Length(LinkList&first){ LinkNode*p=first->link;}//输入一个元素X查找序号LinkNode*Search1(LinkList &first,DataType x){ LinkNode *p = first->link; int c=1; while(p!=NULL&&p->data!=x){ p=p->link; c++; } printf("对应的逻辑序号为:%d\n",c); } //输入一个序号查找元素XLinkNode*Search2(LinkList &first,DataType i){ LinkNode*p=first->link; int b=1; while(p!=NULL&b<i){ p=p->link; b++; } printf("对应的data值为:%d\n",p->data);}main(){ int i; int x; LinkList L; DataType endTag; printf("请输入约定结点为:"); scanf("%d",&endTag); //输入约定的结束标志 L=(LinkNode*) malloc (sizeof (LinkList)); if(!L){ printf("存储分配错误!\n"); exit(1); } LinkNode *rear=L; creatListRear(rear->link,endTag); printList(L->link); Length(L); printf("请任意输入一个数值x:"); scanf("%d",&x); Search1(L,x); printf("请任意输入一个序号:"); scanf("%d",&i); Search2(L,i);}