A-A+
假设以带头结点的单链表表示有序表 单链表的类型定义如下: typedef struct n
问题详情
假设以带头结点的单链表表示有序表,单链表的类型定义如下:
typedef struct node{
int data;
struct node*next;
}LinkNode,*LinkList;
编写算法,输入n个整数构造一个元素值互不相同的递增有序链表(即相同的整数只取一
个)。算法的函数原型给定为
LinkList f 34(int n);请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:LinkList f 34(int n){ LinkList LPqs;int ei;L=(LinkList)malloe(sizeof(LinkNode));L—>next=NULL;for(i=1;i<=n;i++){seanf("%d"&e);p=L;q=p—>next;while(q&&q—>data<e){p=q;q=q—>next;}if(!q||q—>data>e){s=(LinkList)malloc(sizeof(LinkNode));s—>data=e;s—>next=q;p—>next=s;}}return L;}
LinkList f 34(int n){ LinkList L,P,q,s;int e,i;L=(LinkList)malloe(sizeof(LinkNode));L—>next=NULL;for(i=1;i<=n;i++){seanf("%d",&e);p=L;q=p—>next;while(q&&q—>data<e){p=q;q=q—>next;}if(!q||q—>data>e){s=(LinkList)malloc(sizeof(LinkNode));s—>data=e;s—>next=q;p—>next=s;}}return L;}