| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 474 人关注过本帖
标题:[求助] 熟悉数据结构的看一下帮个忙啦,急!!!!!
只看楼主 加入收藏
whisky
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-10-30
收藏
 问题点数:0 回复次数:2 
[求助] 熟悉数据结构的看一下帮个忙啦,急!!!!!

一道有关《数据结构》的 题目 《编写实现线形表的》 我都已经琢磨了两天了 还是没有结果
求助问题:1。在第5项功能中无法找出要查找的元素,输入要查找的元素后直接显示:没有您要查找的元素,然后就是出错关闭信息。
2 。如何初始化线性表,帮忙在本程序上添加
(太感谢你们了 本程序已经调试好了,在VC++下C++source file中调试通过)
程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef int elemtype;
typedef struct
{
elemtype name[10];
int length;
}student;

void outlin(student xs);
void creat(student *p);
void insert(student *p,int i,int x);
void dell(student *p,int i);
void chazhao(student *p,elemtype i);
main()
{student xs;
int i,cord,x;
do
{ printf("\n*******主菜单*******\n");
printf("\n 1 建立线性表 \n");
printf("\n 2 插入一个元素 \n");
printf("\n 3 显示当前线性表 \n");
printf("\n 4 删除一个元素 \n");
printf("\n 5 查找一个元素 \n");
printf("\n 6 初始化线性表 \n");
printf("\n 7 退出元素组 \n");
printf("请输入您的选择");
scanf("%d",&cord);
switch(cord)
{
case 1:{creat(&xs);outlin(xs);
}break;
case 2:{ printf("\n 插入位置 i,数据 x:");
scanf("%d %d",&i,&x);
insert(&xs,i,x);
outlin(xs);
}break;
case 3:{outlin(xs);
}break;
case 4:{ printf("\n请输入要删除的位置i=");
scanf("%d",&i);
dell(&xs,i);
outlin(xs);
}break;
case 5:{ printf("\n请输入要查找的数据信息i=");
scanf("%d",&i);
chazhao(&xs,i);
}break;
case 7:exit(0);
}
}while(cord<=7);
}


void outlin(student xs)
{ int i;
for(i=1;i<=xs.length;i++)
printf("\n %2d %6d",i,xs.name[i]);
}

void creat(student *p)
{int i;
printf("\n n=");
scanf("%d",&(p->length));
for(i=1;i<=p->length;i++)
{printf("\n data=");
scanf("%d",&(p->name[i]));
}
}
void insert(student *p,int i,int x)
{
int k;

if((i<=0)||(i>p->length))
printf("\n erroe");
else
{for(k=p->length;k>=i;k--)
p->name[k+1]=p->name[k];
p->name[i]=x;
p->length++;
}
}

void dell(student *p,int i)
{ int k;

if((i<=0)||(i>p->length))
printf("插入位置出错");
else
{
for(k=i;k<=p->length;k++)
p->name[k]=p->name[k+1];
p->length--;
}
}

void chazhao(student *p,elemtype i)
{ int k;
student cha;
cha.name[1]=i;

for(k=1;k<=p->length;k++)
{
if(p->name[k]==cha.name[1])

printf("数据位置 k=%s",k);
else
{ printf("没有这个数据");
}
}
}

搜索更多相关主题的帖子: 数据结构 
2005-10-30 16:41
wengqian053
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-11-2
收藏
得分:0 

用C++类来做
指针连表做更清晰


2005-11-02 12:28
苦味酸
Rank: 2
等 级:新手上路
威 望:3
帖 子:142
专家分:0
注 册:2005-9-9
收藏
得分:0 

建议你这么做:
#define MAX 10

typedef int elemtype;
typedef struct
{
elemtype name[MAX];
int length;
}student;

void InitStudent(student * S)
{//初始化操作,将线性表置空
S->length=0;
}

int LocateStu(student S,int x)//查找操作
{//返回元素的位置从0算起
int k=0;
while(k<S.length&&S.name[k]!=x)
k++;
if(k<S.length)
return k;//返回查找元素位置
else
return -1;//没找到结果
}


『站在风口浪尖紧握住鼠标旋转!』 『不在于选择什么,而在于坚持多久!』
2005-11-06 00:24
快速回复:[求助] 熟悉数据结构的看一下帮个忙啦,急!!!!!
数据加载中...
 
   



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

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