{
j<=j-1;
if(A[j] { A[i]<=A[j]; i<=i+1; } while(A[i] <=A[i]; j<=j-1; } 插入a1:*p=a1; 改为:p->date=a1;指针p指向对象date=a1,该对象是一个结构体,指向结构体里a1那部分 删除a1并把存储空间解放:free(p); 二、链表的构造q<=NULL; for(j=n;i>=1;i--) { p<=(NODE*)malloc(sizeof(NODE)); p->date<=an; 将an替换为ai 注:i此处为n-1 p->next<=NULL;把指针设为空指针,替换为q q<=p; } 考虑链表的头指针 当ai未插入时: 算法: CreatLinkList(n) 构造链表,n为节点 { q<=NULL; for(i=n;i>=1;i--) { p<=(NODE*)malloc(sizeof(NODE)); scanf(ai); p->date<=ai; p->next<=q; q<=p; } return(p); } 注:此时p、q一样∵已被赋值给对方 作业4:倒过来。 从前节点到后节点。 头指针head p<=head; 从头指针出发,依次输出节点。 可用for循环或while循环(不确定循环次数时用) p<=head; while(p=\\NULL) { printf(p->data); p<=p->next; } 三、链表的插入算法: 假定:在表中值为x的节点前面插入一个值为y的节点。 分析:1.空链 2.表中第1个节点的值为x 3.表中有一个值为x的节点 4.表中没有值为x的节点 5.表中有多个值为x的节点。 NODE*InsertLinkList(head,x,y) { q<=(NODE*)malloc(sizeof(NODE)); q->data<=y; q->next<=NULL; if(head=NULL) head<=q; else if(head->date=x) { q->next<=head; head<=q; } else { r<=head; p<=head->next; while(p->data=/x and p=\\NULL) p<=p->next;