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

      1 #define  ListSize  100
      2 #include<stdio.h>
      3 // 存储结构
      4 typedef struct Seqlist
      5 {
      6     int list[ListSize];
      7     int length;
      8 };
      9 //初始化
     10 void InitList(Seqlist *L)
     11 {
     12     L->length=0;
     13 }
     14 
     15 //判断是否为空
     16 int ListEmpty(Seqlist L)
     17 {
     18     if(L.length==0)
     19         return 1;
     20      else
     21          return 0;
     22 }
     23 //序号查找
     24 int GetNum(Seqlist L,int i ,int *e)
     25 {
     26     if(i<1||i>L.length)
     27         return 0;
     28     else
     29     
     30         *e=L.list[i-1];
     31     return 1;
     32 }
     33 
     34 //按内容查找
     35 
     36 int LocateNum(Seqlist L,int e)
     37 {
     38  int i;
     39  for (int i = 0; i < L.length; i++)
     40  {
     41      if(L.length==e)
     42          return  i+1;
     43      return 1;
     44  }
     45 }
     46 
     47 int InsertList(Seqlist *L,int i,int e)
     48 {
     49    int j;
     50    if(i<i||i>L->length+1)
     51    {
     52    printf("插入位置非法!");
     53    return 0; 
     54    }
     55    else if(L->length>=ListSize)
     56    {
     57     printf("链表存储已满!");
     58     return 0;
     59    }
     60    else
     61    {
     62      for(j=L->length;j>=i;j--)
     63          L->list[j]=L->list[j-1];
     64          L->list[i-1]=e;
     65          L->length=L->length+1;
     66          return 1;
     67    }
     68 }
     69 //删除第i个元素
     70 int DeleteList( Seqlist *L,int i,int *e)
     71 {
     72   int j;
     73   if(L->length<=0)
     74   {
     75   
     76   printf("链表为空!");
     77   return 0;
     78   }
     79   else if(i<1||i>L->length)
     80   {
     81        printf("删除位置不合适!
    ");
     82        return 0;
     83   }
     84   else
     85   {
     86       *e=L->list[i-1];
     87       for ( j = i; j < L->length; j++)
     88       {
     89           L->list[j-1]=L->list[j];
     90 
     91       }
     92       L->length=L->length-1;
     93       return 1;
     94   }
     95 }
     96 
     97 // 求表长
     98 
     99 int ListLength(Seqlist L)
    100 {
    101     return L.length;
    102 }
    103 
    104 // 清空表
    105 void ClearList(Seqlist L)
    106 {
    107     L.length=0;
    108 }
     1 #include"Seqlist.h"
     2 #include<stdio.h>
     3 #define ListSize 100
     4 int main()
     5 {
     6     /*    InsertList  DeleteList ClearList GetNum ListEmpty ListLength LocateNum */ 
     7     int a[5]={1,3,5,7,8};
     8     int b[5]={10,12,14,16,18};
     9     Seqlist A,B;
    10     int e;
    11     InitList(&A);
    12     InitList(&B);
    13     for (int i = 0; i <sizeof(a); i++)
    14     {
    15         InsertList(&A ,i,a[i]);
    16     }
    17     for (int i = 0; i < A.length; i++)
    18     {
    19         if(GetNum(A,i,&e));
    20         printf("A表内容是:%d
    ",e);
    21     }
    22     
    23     for (int i = 0; i <sizeof(b); i++)
    24     {
    25         InsertList(&B ,i,b[i]);
    26     }
    27     for (int i = 0; i < B.length; i++)
    28     {
    29         if(GetNum(B,i,&e));
    30         printf("B表内容是:%d
    ",e);
    31     }
    32     
    33     return 0;
    34 
    35  }
  • 相关阅读:
    微软企业库调用Oracle存储过程返回(1个或多个)数据集
    (转)Oracle表空间
    HTML5操作
    完美实现 ASP.NET 2.0 中的URL重写伪静态(映射) &gt;(转载)的简介与内容
    HTML5 audio 详解
    步步为营:Asp.Net使用HttpWebRequest通知,抓取,采集(转)
    js cookie操作
    多线线程
    js with用法
    asp.net AllowSorting="true"仍然不能排序的原因
  • 原文地址:https://www.cnblogs.com/-210843013/p/5995761.html
Copyright © 2011-2022 走看看