zoukankan      html  css  js  c++  java
  • c语言链表的基本操作 一(线性表链式存储结构的创建,链表元素的增加,删除,修改,查找)

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

    typedef struct LNode

    {  

    int data;  

    struct LNode *next;

    };

    LNode *Init_LNode()

    {  

    LNode *head;  

    head=(LNode *)malloc(sizeof(LNode));

     head->next=NULL;  return (head);

    }

    LNode *Create_LNode(LNode *head)

    {//尾插创建  

    LNode *newp,*p;

     int a;  p=head;

     printf("请输入链表数据a: ");

     scanf("%d",&a);

     while(a!=-1)

    {   

    newp=(LNode *)malloc(sizeof(LNode));   

    newp->data=a;  

     newp->next=NULL;   

    p->next=newp;   

    p=newp;   

    scanf("%d",&a);  

    }

     return head;

    }

    LNode *Insert_LNode(LNode *head)

    {//头插  LNode *newp,*q;

     int a;  printf("请输入要插入的数据:");

     scanf("%d",&a);  while(a!=-1)

    {   

    newp=(LNode *)malloc(sizeof(LNode));   

    newp->data=a;      

    newp->next=head->next;//头插   

    head->next=newp;   

    scanf("%d",&a);

     }  

    return head;

    }

    LNode *delete_byValue(LNode *head)

    {//按值删除  

    LNode *p,*q;  

    int e;

     printf("输入要删除的数: ");

     scanf("%d",&e);  

    q=head;  

    p=head->next;  

    while(p!=NULL&&p->data!=e)

    {   

    q=p;   p=p->next;    

    }

     if(p==NULL)

    {  

     printf("元素不存在 ");  

    }  

    else

    {   

    q->next=p->next;   free(p);  

    }  

    return head;

    }

    LNode *delete_byID(LNode *head)

    {//要删除第几个元素  

    LNode *p,*q;  int i=0,j;  

    printf("请输入要删除的第几个元素: ");  

    scanf("%d",&j);  

    q=head;

     p=head->next;

     while(p!=NULL&&i<j-1)

    {   

    q=p;   p=p->next;   i++;  

    }

     if(p==NULL)

    {  

     printf("你要删除的不存在 ");  

    }  

    else

    {   

    q->next=p->next;   free(p);  

    }

     return head;

    }

    void print(LNode *head)

    {  

    LNode *p;  p=head->next;  

    while(p!=NULL)

    {   

    printf("%d ",p->data);  

     p=p->next;  }

     printf(" ");

    }

    int main()

    {  

    LNode *head;    

    head=Init_LNode();

     head=Create_LNode(head);

     print(head);    head=Insert_LNode(head);  print(head);//输出    //head=delete_value(head);  head=delete_byID(head);  print(head);        return 0;

    }

  • 相关阅读:
    IIS7.5 部署WCF项目问题集锦
    C#制作“安装和部署”时,实现软件开机启动
    Strsafe.h:更安全的C语言字符串处理函数
    FMOD音频引擎简单使用
    您也使用托管C++吗?
    《Programming in Lua中文版》 8.Compilation, Execution, and Errors
    恶心的C语言strtok函数
    Lua一些基本函数
    Lua tables 分析1
    如何让EditPlus支持LUA(转)
  • 原文地址:https://www.cnblogs.com/jiafeng1996/p/11267427.html
Copyright © 2011-2022 走看看