数据结构-线性结构链表

haimian
2025-07-06 / 0 评论 / 2 阅读 / 正在检测是否收录...

线性结构列表的增删

#include "stdio.h"
#include "stdlib.h"
typedef int E;
struct ListNode{
    E element;
    struct ListNode * next;
}; 
typedef ListNode *Node;
int initList(Node head){
    head->next = NULL;
}
int insertList(Node head,E element,E index){
    if(index < 1) return 0;
    while(--index){
        head = head->next;
        if(head == NULL) return 0;
    }
    Node node = (Node)malloc(sizeof(struct ListNode));
    if(node==NULL) return 0;
    node->element = element;
    node ->next  = head->next;
    head->next = node;
    return 1; 
}
int delectList(Node head,E index){
    if(index<1)return 0;
    while(index--){
        head = head->next;
        if(head ==NULL) return 0;
    }
    if(head->next == NULL) return 0;
    Node tmp = head->next;
    head->next = head->next->next;
    free(tmp);
    return 1;
}
void printList(Node head){
    while (head->next) {
        head = head->next;
        printf("%d ", head->element);
    }
}

int main() {
    struct ListNode head;
    initList(&head);
    for (int i = 0; i <= 3; ++i) {
        insertList(&head, i * 100, i);
    }
    delectList(&head,1);  
    printList(&head);
}
0

评论 (0)

取消