码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构——链表实现

时间:2015-05-12 17:17:18      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

刚刚出炉的复习代码,太久没写,复习下,带头结点的单向链表。
很多人和书都用的指向指针的指针,反正我是不喜欢,所以就没用。

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"time.h"
//链表

typedef struct LNode{
    int value ;
    LNode *next;
}LNode,*LinkList;
//创建链表
LinkList CreatLinkList(){
    LinkList p = (LinkList)malloc( sizeof( LNode));
    if(p==NULL){
        return NULL;
    }
    p->next=NULL;//创建一个带头结点的单向链表
    return p;
 }

//向末尾添加数据
LinkList AddToLinkListTail (LinkList p ,int value){
    LinkList tmp=p;
    while(tmp->next!=NULL){
        tmp = tmp->next;
    }
            LinkList newp = (LinkList)malloc( sizeof( LNode));
            if(newp==NULL){
                printf("内存分配失败");
                return p;
            }
            newp->value=value;
            tmp->next=newp;
            newp->next=NULL;
        return p;
}


//打印链表
void PrintLinkList(LinkList p){
    LinkList tmp = p;
    if(tmp->next==NULL){
        printf("链表为空\n");
    }else{
        while(tmp=tmp->next){
        printf("%d\t",tmp->value );
    }
        printf("\n");
    }
}

//插入数据
LinkList InsertLinkList(LinkList p , int node,int value){
    //在节点node之前插入数据value
    LinkList tmp = p;
    if(node<1){//节点值错误
        return NULL;
    }
        while(tmp!=NULL && node-1>0 ){
            //寻找第node-1个节点
        node--;
        tmp=tmp->next;
        }
        if(tmp==NULL) {//节点大于链表长度
            return NULL;
        }
        LinkList newp = (LinkList)malloc(sizeof(LNode));
        newp->value=value;
        newp->next = tmp->next;
        tmp->next= newp;
        return tmp;
}
int main(){
    LinkList p;
    //创建
    p=CreatLinkList();
    //打印
    PrintLinkList(p);
    //添加到末尾
    p = AddToLinkListTail(p,1);

    //打印
    PrintLinkList(p);

    //插入
    InsertLinkList(p,1,8);
    //打印
    PrintLinkList(p);
    //插入
    InsertLinkList(p,3,10);
    //打印
    PrintLinkList(p);

    system("pause");
}

数据结构——链表实现

标签:

原文地址:http://blog.csdn.net/u013785951/article/details/45670807

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!