链表

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

typedef struct node{
    char data;
    struct node *next;
}Nnode,*Link;

/*
 *Fun Name: InitLink
 *Fun Could: Create a Link
 *Input Num: none
 *Output Num: L
 */

Link InitLink()
{
    Link L;
    L = (Link)malloc(sizeof(Nnode));
    L->next = NULL;
    return L;
}

/*
 *Fun Name: InsertL
 *Fun Could: Insert a Link
 *Input Num: L,e     
 *Output Num: L
 */

Link InsertL(Link L, char e)
{
    Link s,r;
    r = L;
    while(r->next != NULL)
        r = r->next;
    s = (Link)malloc(sizeof(Nnode));
    s->data = e;
    r->next = s;
    s->next = NULL;
    return L;
}

/*
 *Fun Name: DeleteL
 *Fun Could: Delete a jiedian
 *Input Num: L,i
 *Output Num: L
 */

Link DeleteL(Link L, int i)
{
    Link r,p;
    int i1,i2;        
    r = p = L;
    i1 = i2 = i;
    while(i1 != 1){
        p = p->next;
        i1--;
    }
    while(i2 != 0){
        r = r->next;
        i2--;    
    }
    p->next = r->next;
    free(r);
    return L;
}

/*
 *Test
 */

int main()
{
    Link L,r;
    char i;
    L = InitLink();
    for(i = 48; i < 58; i++)
        L = InsertL(L,i);
    L = DeleteL(L,9);
    r = L->next;
    while(r != NULL){
        printf("%c\n", r -> data);
        r = r->next;
    }
    return 0;
}




阅读(267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值