• 线性表算法设计题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;
        
    }
  • 相关阅读:
    同步、异步、阻塞、非阻塞
    prolog 阶段总结
    prolog 规则
    prolog 内部谓词
    prolog --寻找neni (2)
    寻找 nani (1)
    一、prolog简介
    [ 转 ] scrapy 中解决 xpath 中的中文编码问题
    【转载】字符串编码问题
    二叉树 —— 创建 + 先序、中序、后序遍历(递归+非递归)
  • 原文地址:https://www.cnblogs.com/cpoint/p/2031081.html
Copyright © 2020-2023  润新知