任务和代码:
遍历链表:
void traverse(Node *h){
Node *p; //p作为用来遍历的指针
p=h;
while(p!=NULL){
printf("%-5d",p->data); //访问结点信息
p=p->next;
}
printf("\n");
}
顺序创建动态链表:
(一)
/*
返回值:指向头结点的指针
参数:链表长度
说明:新建链表就是不断插入新的结点
*/
Node *createLinkList(int n){
Node *h=NULL,*p,*last; //p指向新增结点,last指向尾结点
int d; //要插入结点的元素值
int i;
for(i=0;i<n;i++){
scanf("%d",&d);
p=(Node*)malloc(sizeof(Node));
p->data=d; //添加新增结点的信息
p->next=NULL;
if(h==NULL)
h=p; //h为空,p是第一个结点的地址,h指向p
else
last->next=p; //新增结点的前一个结点的指针域是新增结点的地址
last=p; //last代表新增的最后一个结点的地址
}
return h;
}
(二)
S *create(int n)
{
S *p,*q,*head;
head=p=q=malloc(sizeof(S)); //先建立头结点(头指针不能变,故放在循环体前)
scanf("%d",&p->date);