文章

9

粉丝

289

获赞

4

访问

82.3k

头像
1533-交换结点,注释详细(c语言)
P1533 四川大学2019年机试题
发布于2021年3月17日 10:14
阅读数 8.7k

 

#include <stdio.h>
#include <stdlib.h>
//定义结点
typedef struct node
{
    int data;
    struct node *next;
}node;
//创建链表
node* createList(int num[], int length)
{
    node *p, *head, *r;
    //初始化头结点
    head = (node *)malloc(sizeof(node));
    head->next = NULL;
    //r定义为尾指针
    r = head;
    //尾插法
    for(int i=0; i<length; i++)
    {
        p = (node *)malloc(sizeof(node));
        p->data = num[i];
        p->next = NULL;//确保最后一个结点指向null
        r->next = p;
        r = p;
    }
    return head;
}
//输出链表
void printList(node* L)
{
    node *p;
    p = L->next;
    while(p!= NULL)
    {
        printf("%d ", p->data);
        p = p->next;
    }
}
//交换奇数位和偶数位上的结点
void change(node *L)
{
    node *h = L, *p, *q;
    while(h->next!=NULL)
    {
        p = h->next;
        if(p->next==NULL)//当只剩一个数时,跳出
            break;
        q = p->next;
        //交换位置
        p->next = ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发