| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 372 人关注过本帖
标题:新手请教(用的顺序表)
只看楼主 加入收藏
lvfeihi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-4-13
收藏
 问题点数:0 回复次数:1 
新手请教(用的顺序表)
头文件
LinearList.h
#include <stdio.h>
#define ListSize 100

struct SList      //结构定义
{
 DataType list[ListSize];
 int length;
};

typedef struct SList SeqList;

SeqList * InitList()   //线性表初始化
{
    SeqList *L;
    L->length=0;
    return L;
}

int EmptyList(SeqList * L)   //是否为空,为空返回1,负责返回0
{
 if(L->length==0)
 {
  return 1;
 }
 else
  return 0;
}

DataType GetList(int i,SeqList * L)//求出第i个元素
{
 if(i<1||i>L->length)
 {
  printf("wrong number.\n");
  return NULL;
 }
 else
  return L->list[i];
}

int LocateList(DataType e, SeqList *L)//查找
{
 int i,j,k;
 j=0;
 for(i=1;i<=L->length;i++)
 {
  if(L->list[i]==e)
  {
   k=i;
   j++;
  }
 }
 if (j<1)
 {
  printf("can not find!\n");
  return 0;
 }
 else
  return k;
}

int InsertList(SeqList * L,int i, DataType e)
{
 int j;
 if(i<1||i>L->length+1)
 {
     printf("illegal.\n");
     return -1;
 }
 else if (L->length>=ListSize)
 {
     printf("full.\n");
     return 0;
 }
 else
 {
     for(j=L->length;j>=i;j--)
         L->list[j]=L->list[j-1];
     L->list[i-1]=e;
     L->length=L->length+1;
     return 1;
 }
}

int DeletList(SeqList * L,int i)
{
 int j;
 if(i<1||i>L->length)
 {
  printf("wrong number!\n");
  return 0;
 }
 else if (L->length==0)
 {
     printf("No data\n");
     return 0;
 }
 else
 {
  for(j=L->length-1;j>=i;j--)
  {
   L->list[j]=L->list[j+1];
  }
  L->length=L->length-1;
  return 1;
 }
}

int LengthList(SeqList * L)
{
 return L->length;
}

void ClearList(SeqList * L)
{
 L->length=0;
}




主文件
#include "stdafx.h"

#define ListSize 100

typedef int DataType;


#include"LinearList.h"


int main(int argc, char* argv[])
{
 SeqList *A ,*B,* C;
 int i,j,t,m;
 A=InitList();
 B=InitList();
 C=InitList();
 printf("the number of A:");
 scanf("%d",&j);
 printf("please enter the elements of A:\n");
 for(i=1;i<=j;i++)
 {
  scanf("%d",&t);
  InsertList(A,(A->length+1),t);
 }
 printf("the number of B:");
 scanf("%d",&j);
 printf("please enter the elements of B:\n");
 for(i=1;i<=j;i++)
 {
  scanf("%d",&t);
  InsertList(B,(B->length+1),t);
 }
 m=0;
 for(i=1;i<=A->length;i++)
 {
  for(j=1;j<=B->length;j++)
  {
   if(A->list[i]==B->list[j])
   {
    m++;
   }
  }
  if(m==0)
  {
   InsertList(C,(C->length+1),A->list[i]);
  }
 }
 A=C;
 for(i=1;i<=(A->length);i++)
 {
  printf("%d",&(A->list[i]));
  putchar('\n');
 }
 ClearList(C);
 return 0;
}
搜索更多相关主题的帖子: return 线性表 元素 
2011-04-28 10:56
lvfeihi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-4-13
收藏
得分:0 
运行时出现错误,麻烦各位帮忙...
2011-04-28 10:57
快速回复:新手请教(用的顺序表)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012882 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved