CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

一个线性表的问题.(50分)

楼主teacher1998(英语+asp.net+MsSQL)2006-03-03 23:11:16 在 .NET技术 / ASP.NET 提问

刚刚在数据结构那里发了,没人回,来这里看看.  
   
  最近在学习Data   Structure,从最基础的线性表开始.现有一问题,望各位指点:  
  我们都知道线性表有两种存储形式:顺序存储形式和链式存储形式.我是问题就是有关顺序表的:  
   
  #define   MAXSIZE   1024;//定义顺序表中可以容纳元素的最多个数  
  typedef   char   elemtype;//定义顺序表中元素类型  
   
   
   
   
  typedef   struct    
  {  
  elemtype   data[MAXSIZE];//顺序表的元素  
  int   last;//表示顺序表的元素个数  
  }sequenlist;  
   
   
  现在我想用这个顺序定义来实现常见的:  
  ⑴置空线性表  
  void   SetNull(L)//置空线性表L  
  sequenlist   *L;//定义L为指向结构体sequenlist的指针  
  {  
  L->last=-1;//设置线性表L的last域为-1  
  }  
  ⑵求线性表的长度  
  int   Length(L)  
  sequenlist   *L;   //定义L为指向结构体sequenlist的指针  
  {  
  return   (L->last+1);//返回线性表L的长度  
  }  
  ⑶向线性表中第i个元素处插入一个新的元素  
  int   Insert(L,X,i)//   在线性表L中第i个位置上插入值为X的元素。  
  Sequenlist   *L;//   定义L为指向结构体sequenlist的指针  
  int   i;  
  elemtype   x;  
  {  
  int   j;  
  if(L->last>=MaxSize-1)  
  {  
  printf(“你输入的位置超出线性表的容量!”);  
  return   NULL;//返回空值,表示插入操作失败  
  }  
  else    
  if((i<1)||i>L->last+1)  
  {  
  printf(“插入位置错误!你输入的插入位置应为1~%d”,L->last+1);  
  return   NULL;  
  }  
  else  
  {  
  for(j=L->last;j>=i-1;j--)  
  L->data[j+1]=L->data[j];//后续元素后移(从最后一个元素开始)  
  L->data[i-1]=x;//将元素x插入到第i个的位置  
  L->last=L->last+1;//顺序表的长度加1  
  Return(1);//表示插入成功  
  }  
   
   
  ...  
   
  这些东西我都懂,代码片段也都能看懂,可是我却写不出个完整程序来实现它们,比方说,我还想写个  
  Creat(L)的函数来创建线性表,可是我的程序不能运行,即使运行,结果也是错的.希望大家帮忙写个creat(L)函数,能写个完整的程序更好.当然,不要用到指针,因为这个是顺序线性表.最后,想问各位达人,你们在学习DS的时候也我如我的困惑否--->能看懂算法片段,却不能写出完整的程序!  
  (我自己写的一个类似的程序如下:  
   
  #include<stdio.h>  
  #include<ctype.h>  
   
  #define   N   100  
  int   a[N];  
  int   n;/*线性表的表长*/  
   
  main()  
  {  
  int   c;     /*代表线性表的元素*/  
  int   i=0;/*循环变量*/  
  int   in_num;   /*待插入的数*/  
  int   in_put;   /*待插入的位置*/  
   
  clrscr();  
  printf("\t   input   an   integer(input   9999   to   quit):");  
          scanf("%d",&c);  
  a[i]=c;/*用数组装入线性表的第一个元素*/  
  while(c!=9999)  
  {  
  printf("\n\tinput   an   integer(input   9999   to   quit):");  
  scanf("%d",&c);  
   
  i++;  
  a[i]=c;/*用数组装入线性表的其他元素*/  
  }  
  n=i;     /*得到线性表的长度*/  
   
  /*显视线性表*/  
  printf("\t");  
  for(i=0;i<n;i++)  
          printf("     a[%d]=%d     ",i+1,a[i]);  
   
  label:printf("\n\t\t   please   input   where   to   insert(on   it)\n");  
   
  printf("\t\t");scanf("%d",&in_put);  
  if(in_put<=0||in_put>n)  
  {  
          printf("\t\t   error   seat.the   number   you   input   is   >0   and   <=%d",n);  
          goto   label;  
  }  
  printf("\t\t   please   input   the   insert   number:\n");  
  printf("\t\t");scanf("%d",&in_num);  
  n=n+1;  
  for(i=n;i>=in_put;i--)/*从最后一个元素向后移动*/  
  /*for(i=in_put;i<n+1;i++)从第i个元素向前最后一个插入*/  
  /*如果这样插入的话从第i+1个开始都是a[i+1]的值*/  
          a[i]=a[i-1];  
  a[in_put-1]=in_num;   /*将新元素插入到用户指定的位置*/  
   
  /*线性表的删除*/  
   
   
  printf("\n\t\tNow   the   new   sequence   is   :\n");  
  for(i=0;i<n;i++)  
          printf("     a[%d]=%d     ",i+1,a[i]);  
  printf("\n\n\n");  
  getch();  
   
  }  
   
  可以运行,但是是用全局数组实现的,不是基于函数的,也不是上面的定义形式.谁能帮我用  
  #define   MAXSIZE   1024;//定义顺序表中可以容纳元素的最多个数  
  typedef   char   elemtype;//定义顺序表中元素类型  
  typedef   struct    
  {  
  elemtype   data[MAXSIZE];//顺序表的元素  
  int   last;//表示顺序表的元素个数  
  }sequenlist;  
   
   
  来写一个顺序表的、完全基于函数的程序啊。 问题点数:50、回复次数:4Top

1 楼teacher1998(英语+asp.net+MsSQL)回复于 2006-03-03 23:24:56 得分 0

帮我看看啊各位!Top

2 楼jecray(云和山的彼端)回复于 2006-03-04 00:22:37 得分 25

发到c/c++版块看看吧Top

3 楼blaite(黑加白(感叹了))回复于 2006-03-04 00:27:52 得分 25

忘了帶暫住證,家都回不了了...回來吐吐口水  
  c-a-w   他老母!!!!!  
   
  誰說種族歧視在中國不存在?  
  我們外地人就是低等人,  
   
  人家懂得享受,四處搞綠化,  
  其費用卻從我們所得稅收中搾取,  
  現在還多出個綠化費,  
  我們要掏腰包,給人家  
  走到哪裡還得掛著個類似狗牌一樣的東西,形影不離  
  Top

4 楼teacher1998(英语+asp.net+MsSQL)回复于 2006-03-04 21:32:12 得分 0

晕,在哪里还要暫住證啊?看你用繁体,应该是广东,我怎么没用Top

相关问题

  • 线性表(链式表示)
  • 线性表基本问题!!!
  • 一个线性表问题
  • 线性表的问题
  • 线性表怎么初始化那?
  • 线性表的合并算法
  • c的线性链表排序。
  • 线性表编译不能通过
  • 用c++怎么定义线性表?
  • 线性表的 间接寻址 描述

关键词

  • 指针
  • 结构
  • 线性表
  • sequenlist
  • 元素
  • 插入
  • 顺序
  • 定义
  • 长度
  • 程序

得分解答快速导航

  • 帖主:teacher1998
  • jecray
  • blaite

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo