1.建立带头结点的单链表;

来源:百度知道 编辑:UC知道 时间:2024/07/02 17:53:00
1.建立带头结点的单链表;
2.输出带头结点的单链表;
3.将单链表中第pos个结点和其前驱结点的相应逻辑顺序进行交换;
4.以选择法对单链表进行排序;
5.在主函数实现对上述四个函数的调用,输出运行结果。
大家帮帮忙,给个具体一点的,谢谢了

建立方法:
  带头结点初始化
  Node *head; //声明头结点

void InitList(Node **head){
*head=(Node *)malloc( sizeof(Node));
(*head)->next=NULL;
}

  带头结点尾插入,统一操作。
  方式一:
  void CreatList(Node **head){
Node *r=*head,*s;
int a;
while(scanf("%d",&a)){
if(a!=0){
s=(Node *)malloc(sizeof(Node));
s->value=a;
r->next=s;
r=s;
}
else{
r->next=NULL;
break;
}
}
}

  调用CreatList(&head);
  方式二:
  void CreatList(Node *head){
Node *r=head,*s;
... //下面的都一样
}

  调用CreatList(head);
  不带头结点初始化
  方式一:
  void InitList(Node **head){
*head=NULL;
}

  调用InitList(&head);
  方式二:
  void InitList(Node *head){
head=NULL