单链表C

来源:互联网 发布:银行家算法例题 编辑:程序博客网 时间:2024/05/01 23:37
#define OK 1
#define ERROR 0
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode{
        int data;
       struct LNode *next; 
}LinkList;
int initLinkList(LinkList &l);
int insertLinkList(LinkList &l,int x);
int deleteLinkList(LinkList &l,int x);


int main(){
    LinkList l;
    initLinkList(l);
    insertLinkList(l,1);
    insertLinkList(l,2);
    insertLinkList(l,3);
    deleteLinkList(l,3);
    LNode* node = l.next;
    while(node->next){
         printf("%d\n",node->next->data);
         node = node->next;
    }
    scanf("%d");
    return 0;
    } 
int initLinkList(LinkList &l){
    LNode* head = (LNode*)malloc(sizeof(LNode));     //带头结点的单链表 
    if(head == NULL)
    return ERROR;
    head->next = NULL;
    l.next = head;      
    return OK;
}
int insertLinkList(LinkList &l,int x){
    LNode *node = (LNode*)malloc(sizeof(LNode));
    if(node == NULL)
    return ERROR;
    node->data = x;
    node->next = NULL;
    LNode *p = l.next; 
    while(p->next){
          p = p->next;
    }  
    p->next = node;
    node = NULL;
    free(node);
    return OK;
}
int deleteLinkList(LinkList &l,int x){
    if(l.next == NULL)
    return ERROR;
    LNode *p = l.next;
    while(p->next){
        if(p->next->data == x){
                    p->next = p->next->next;  
                    return OK;         
        }
        p =  p->next;           
    }
    return ERROR;
    
}
0 0
原创粉丝点击