重拾算法Day08-链表

链表

本节主要讲链表,包括链表的构造,链表的插入等操作。

#include <stdio.h>
#include <stdlib.h>

struct node {
    int data;
    struct node *next;
};
int main(int argc, const char * argv[]) {
    struct node *head, *p, *q = NULL, *t;
    int n, a;
    scanf("%d", &n);    //输入个数
    head = NULL;
    for (int i=1; i<=n; i++) {  //输入数据
        scanf("%d", &a);
        p = (struct node *)malloc(sizeof(int));
        p->data = a;
        p->next = NULL;
        
        if (head == NULL) {
            head = p;
        }else {
            q->next = p;
        }
        q=p;
    }
    
    scanf("%d", &a);
    t = head;
    while (t!=NULL) {
        if (t->next == NULL || t->next->data > a) {
            p=(struct node *)malloc(sizeof(struct node));
            p->data = a;
            
            p->next = t->next;  //断裂插入
            t->next = p;
            break;
        }
        
        t=t->next;
    }
    
    t=head;
    while (t!=NULL) {
        printf("%d ", t->data);
        t=t->next;
    }
    
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容