现在的位置: 首页 > 综合 > 正文

简单的链表实现

2013年09月17日 ⁄ 综合 ⁄ 共 1794字 ⁄ 字号 评论关闭

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
struct data
{
    char name[20];
    struct data *next;
};
typedef struct data PERSON;
typedef PERSON *LINK;     //typedef struct data *LINK

int main (void)
{  
   
    LINK head=NULL;
    LINK newdata=NULL;
    LINK count=NULL;
    //实现在链表最前面添加一个节点
    newdata=(LINK)malloc(sizeof(PERSON));      //申请新结构实例
    newdata->next=head;                        //新结构实例指向原head指针
    head=newdata;                              //head指针指向新结构实例
    strcpy(newdata->name,"A");            //将一个新节点加入到链表的开头

    count=head;

    while(count->next!=NULL)
    {
        count=count->next;              
    }                                    //遍历链表,找到最后一个节点

    newdata=(LINK)malloc(sizeof(PERSON));    //申请新结构实例
    count->next=newdata;                     //新结构实例指向末尾节点count->next
    newdata->next=NULL;                      //新结构实例成为链尾 newdata->next=NULL
    strcpy(newdata->name,"B");           

    newdata=(LINK)malloc(sizeof(PERSON));      //申请新结构实例
    newdata->next=head->next;                  //新结构实例指向原来的第二个节点
    head->next=newdata;                        //第一个节点的next成为指向新结构实例    
    strcpy(newdata->name,"C");             

    count=head;
    while(count!=NULL)
    {
        printf("%s/n",count->name);
        count=count->next;
    }
    char *p;
    p=(char*)malloc(sizeof(PERSON));
    puts("查询链表是否含有此数据呢?/n");
    gets(p);
    puts("喔,我已经开始查找此数据了,等我../n");
    count=head;
    bool find=false;
    while(count->next!=NULL)
    {
                 
        if(!strcmp(count->name,p))
        {
            printf("我想我找到了%s/n",count->name);
            find=true;
            break;
       
        }count=count->next;
           
      
    }
    if(! strcmp(count->name,p) && find!=true)
    {
        printf("我想我找到了%s/n",count->name);
    }
    else if(find==false)
    {
         printf("抱歉了,我遍历了整个链表也没能找到%s/n",p);
    }

 
    getch();
    return 0;
}

 

C语言学习,纪录下来吧..虽然很简单。

书上还有一个难一点的例子,搞定它....

抱歉!评论已关闭.