动手实现 数据结构 之 “单向链表”

 头插入单向链表 C 语言实现

#include <stdio.h>


struct node {
    int data;
    struct node * next;
};
int main()
{
    // 头插入链表
    // create list
    struct node n9[10];
    struct node * phead = NULL;
    for(int i=9; i>=0; i--) {
        n9[i].data = i*i;
        n9[i].next = phead;
        phead = &n9[i];
    }

    // insert nd after insertPos
    struct node nd; nd.data = 33;
    struct node * insertPos = &n9[3];
    nd.next=insertPos->next;
    insertPos->next = &nd;

    // find 81
    struct node * pos = phead;
    while(pos != NULL) {
        if(pos->data == 81) break;
        pos = pos->next;
    }
    if(pos != NULL) printf("find pos->data: %d\n", pos->data);

    // delete n9[2];
    struct node * deletePos = &n9[9];
    if(deletePos->next != NULL)
        deletePos->next = deletePos->next->next;
    else {
        struct node * pos = phead;
        while(pos != NULL) {
            if(pos->next == deletePos) break;
            pos = pos->next;
        }
        if(pos != NULL) pos->next = pos->next->next;
    }

    // out put
    struct node * ptemp = phead;
    while(ptemp != NULL) {
        printf("%d ", ptemp->data);
        ptemp = ptemp->next;
    }
    printf("\n");

   


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值