zoukankan      html  css  js  c++  java
  • 线性表算法设计题2.13and2.14

    1、试写一算法在带头结点的单链表结构上实现线性表操作Locate(L,x)

    2、试写一算法在带头结点的单链表结构上实现线性表操作Length(L)

    C code:

     #include<stdio.h>

    #include<stdlib.h>
    #define ERROR 0
    #define OK 1
    #define OVERFLOW -1
    #define TRUE 1
    typedef 
    int Status;

    struct LNode
    {
         
    int data;
         LNode 
    *next;
    };
    typedef LNode 
    *LinkList;

    void InitList(LinkList &L)
    {
         L
    =(LinkList)malloc(sizeof(LNode));
         
    if(!L)
           exit(OVERFLOW);
         L
    ->next=NULL;
    }

    int ListLength(LinkList L)
    {
         
    int i=0;
         LinkList p
    =L->next;
         
    while(p)
         {
              i
    ++;
              p
    =p->next;
            }
            
    return i;
    }

    int LocateElem(LinkList L,int e)
    {
         
    int i=0;
         LinkList p
    =L->next;
         
    while(p)
         {
              i
    ++;
              
    if(p->data==e)
                
    return i;
              p
    =p->next;
            }
            
    return 0;
    }

    void CreateList(LinkList &L,int n)
    {
         
    int i;
         LinkList p,q;
         L
    =(LinkList)malloc(sizeof(LNode));
         L
    ->next=NULL;
         q
    =L;
         printf(
    "Please input %d numbers:\n",n);
         
    for(i=1; i<=n; i++)
         {
              p
    =(LinkList)malloc(sizeof(LNode));
              scanf(
    "%d",&p->data);
              q
    ->next=p;
              q
    =q->next;
            }
            p
    ->next=NULL;
    }

    void judge(LinkList L,int x)
    {
         
    int flag;
         flag
    =LocateElem(L,x);
         
    if(flag)
           printf(
    "elem %d is in the %d place of L",x,flag);
         
    else
           printf(
    "elem %d is not in L",x);
    }

    void PrintList(LinkList L)
    {
         LinkList p;
         p
    =L->next;
         
    while(p)
         {
              printf(
    "%d ",p->data);
              p
    =p->next;
            }
            printf(
    "\n");
        
    }

    int main()
    {
         LinkList L;
         
    int len,x;
         CreateList(L,
    8);
         printf(
    "LinkList L:");
         PrintList(L);
         len
    =ListLength(L);
         printf(
    "The LinkList L'length is:%d\n",len);
         printf(
    "input number x:");
         scanf(
    "%d",&x);
         judge(L,x);
         
    return 0;
        
    }
  • 相关阅读:
    分页
    ARC127C Binary Strings 思维 二进制 树
    ARC127A Leading 1s 数位DP
    【算法复习】背包问题 经典动态规划
    iOS15真机调试包下载
    Linux基础03 绝对路径/相对路径, 切换目录cd, 创建目录mkdir, 创建文件touch, 树状显示tree, 复制cp
    Jedis支持哨兵模式下认证
    19C ORA-00600: internal error code, arguments: [kkmmctbf:bad intcoln], [49]
    useMemo 和 useCallback 简单理解
    前端大屏页面布局经验
  • 原文地址:https://www.cnblogs.com/cpoint/p/2031081.html
Copyright © 2011-2022 走看看