• 数据结构中的单链表上机代码


    数据结构是那种离开书就不会写代码的情况,求大佬教方法如何解决这种情况

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

    typedef int DataType;
    typedef struct node{
    DataType data;
    struct node *link;
    }LinkNode,*LinkList;
    void printList(LinkNode*first){
    if(first==NULL) return;
    printf("%d ",first->data);
    printList(first->link);
    } ;
    //用尾插法插入单链表
    void creatListRear(LinkList&last,DataType endTag){
    DataType val;
    printf("请输入结点元素:");
    scanf("%d",&val);
    if(val==endTag){
    last = NULL;
    }else{
    last=(LinkNode*)malloc(sizeof(LinkList));//创建新结点
    if(!last){
    printf("储存分配错误! "); exit(1);
    }
    last->data=val;

    creatListRear(last->link,endTag);//递归创建后续链表
    }
    }
    //长度
    int Length(LinkList&first){
    LinkNode*p=first->link;
    }
    //输入一个元素X查找序号
    LinkNode*Search1(LinkList &first,DataType x){
    LinkNode *p = first->link;
    int c=1;
    while(p!=NULL&&p->data!=x){
    p=p->link;
    c++;
    }
    printf("对应的逻辑序号为:%d ",c);
    }
    //输入一个序号查找元素X
    LinkNode*Search2(LinkList &first,DataType i){
    LinkNode*p=first->link;
    int b=1;
    while(p!=NULL&b<i){
    p=p->link;
    b++;
    }
    printf("对应的data值为:%d ",p->data);
    }


    main(){
    int i;
    int x;
    LinkList L; DataType endTag;
    printf("请输入约定结点为:");
    scanf("%d",&endTag); //输入约定的结束标志
    L=(LinkNode*) malloc (sizeof (LinkList));
    if(!L){
    printf("存储分配错误! ");
    exit(1);
    }
    LinkNode *rear=L;
    creatListRear(rear->link,endTag);
    printList(L->link);
    Length(L);
    printf("请任意输入一个数值x:");
    scanf("%d",&x);
    Search1(L,x);
    printf("请任意输入一个序号:");
    scanf("%d",&i);
    Search2(L,i);
    }

  • 相关阅读:
    HDU 2157 How many ways?【矩阵快速幂】
    CodeForces 3 D.Least Cost Bracket Sequence【贪心+优先队列】
    【差分】Tallest Cow
    P2220 [HAOI2012]容易题【快速幂】
    无题II HDU
    PHP编译常见错误
    MySQL编译安装
    Tomcat 单(多)实例部署使用
    lvs+keepalived 高可用及负载均衡
    MySQL操作命令梳理(2)
  • 原文地址:https://www.cnblogs.com/lvzhiqi/p/10726950.html
Copyright © 2020-2023  润新知