zoukankan      html  css  js  c++  java
  • 数据结构单链表

    折磨了我三天的单链表今天晚上给它完成了,莫名的舒心。代码实现单链表的定义和创建,给单链表赋值求其长度、给任意的序号或者元素值寻找元素值或者序号。写完程序代码的第一感觉就是代码需要经常写,不写就更加不会写,hhhh

    #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 clearListRear (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;
    clearListRear (last->link, endTag);
    }
    }
    int Length(LinkList &first){
    //计算表的长度,函数返回表的长度
    LinkNode*p=first->link;
    int count=0;
    while (p!=NULL){
    p=p->link;
    count++;
    }
    printf("单链表的长度:%d",count);
    };
    LinkNode *Locate (LinkList &first ,DataType i){
    //任意给一个序号的元素值
    if(i<0) return 0;
    LinkNode *p=first->link;
    int k=1;
    while(p!=NULL&&k<i){
    p=p->link;
    k++;
    }
    printf("对应的data值为:%d",p->data);
    }
    LinkNode *Search (LinkList &first ,DataType x){
    //任意给定一个元素值找序号
    LinkNode *p=first->link;
    int a=1;
    while(p!=NULL&& p->data!=x){
    p=p->link;
    a++;
    }
    printf("对应的序号为:%d",a);
    }
    main(){
    int i;
    int x;
    LinkList L;DataType endTag;
    printf("请输入约定的输入结束标志:");
    scanf("%d",&endTag);
    L=(LinkNode*)malloc(sizeof(LinkNode));//创建头结点
    if(!L){
    printf("储存分配错误! ");
    exit(1);
    }
    LinkNode*rear=L; //尾指针,初始时指向头结点
    clearListRear(rear->link, endTag); //递归建立单链表
    printList(L->link); //以下一结点为表头继续输出
    Length(L);
    printf(" 任意给定一个元素的序号:");
    scanf("%d",&i);
    Locate(L,i);
    printf(" 任意给定一个元素的值:");
    scanf("%d",&x);
    Search(L,x);

    }

  • 相关阅读:
    影响一个UIView是否能正常显示的几个因素
    浅谈多进程多线程的选择
    Spring阅读方法
    数据库范式通俗解释
    MySQL学习笔记(二):MySQL数据类型汇总及选择参考
    MySQL学习笔记(一):SQL基础
    存储过程优缺点
    MySQL学习笔记(三):常用函数
    bzoj 3576[Hnoi2014]江南乐 sg函数+分块预处理
    bzoj 3166 [Heoi2013]Alo 可持久化Trie
  • 原文地址:https://www.cnblogs.com/lvzhiqi/p/10693443.html
Copyright © 2011-2022 走看看