| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 740 人关注过本帖
标题:问题求助 初学数据结构 有好多知识不会 求助大神帮我看一下我的代码 问题附 ...
只看楼主 加入收藏
遗情处有诗章
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2017-3-10
结帖率:75%
收藏
 问题点数:0 回复次数:0 
问题求助 初学数据结构 有好多知识不会 求助大神帮我看一下我的代码 问题附了图片
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXSIZE 10


/**********************类型定义 ********************/
typedef struct
{
    int no;
    char name[MAXSIZE];
    int grade;
} datatype;

typedef struct
{
    datatype data[MAXSIZE];
    int last;
   
} SeqList;

typedef struct node
{
    datatype data[MAXSIZE];
    struct node *next;
   
}LNode,*LinkList;

int compare(datatype *a,datatype *b)
{
    return a->no-b->no;
}

/*******************线性表的基本操作***************************/
SeqList *init_SeqList()
{
    SeqList *L;
    L=(SeqList *)malloc(sizeof(SeqList));
    if(L==NULL)
        printf("内存分配失败\n");
    else
        L->last=-1;
   
   
    return L;
}



int Insert_SeqList(SeqList *L,int i,datatype x)
{
    int j;
    if(L->last==MAXSIZE-1)
    {
        printf("表满");
        return(-1);
    }
    if(i<1||i>L->last+2)
    {
        printf("位置错");
        return(0);
    }
    for(j=L->last;j>=i-1;j--)
    L->data[j+1]=L->data[j];
    L->data[i-1]=x;
    L->last++;
    return(1);
}

int Location_SeqList(SeqList *L,datatype x)
{
    int i=0;
    while(i<=L->last&&compare(&(L->data[i]),&x)!=0)
        i++;
        
    if(i>L->last)
        return -1;
    else
        return i;
}
int Delete_SeqList(SeqList*L,int i)
{
    int j;
    if(i<1||i>L->last+1)
    {
        printf("不存在第%d个元素");
        return (0);
    }
    for(j=i;j<=L->last;j++)
    L->data[j-1]=L->data[j];
    L->last--;
    return(1);
}
/**********************功能实现***************************/
void find(SeqList *L)
{
    int no;   
    printf("请输入学生的学号:");   
    scanf("%d",&no);
   
    datatype x;
    x.no=no;
   
    int i=Location_SeqList(L,x);
    if(i==-1)
        printf("查找失败");
    else
        printf("是第%d个学生",i);
}
LinkList Creat_LinkList()
{
    LinkList L=NULL;
    LNode *s,*r=NULL;
    int x;
    bool flag;
    scanf("%d",&x);
    while(x!=flag)
    {   
     s=(LNode *)malloc(sizeof(LNode));
        
        if(L==NULL)
            L=s;
        else
             r->next=s;
             r=s;
             scanf("%d",&x);
    }
   
    if(r!=NULL)
    r->next=NULL;
    return L;
}

LNode *Get_Linklist(LinkList L,datatype x,int i)
{
    LNode *p=L->next;

    p=p->next;
    return p;
}

void Insert(SeqList *L)
{
    int i;
    int x;
        if(i==-1)
        printf("插入失败");
    else
    printf("请入要插入学生的学号:");
    scanf("%d",&i);
    printf("请入要插入的学生的姓名:");
    scanf("%s",&x);
    printf("请入要插入的学生的分数:");
    scanf("%d",&i);
}   
   
   

/*删除元素操作*/
void Delete(SeqList *L)
{
    int i;
    printf("请输入要删除元素所在的位置:");
    scanf("%d",&i);

    if(i==-1)
        printf("删除失败");
    else
        printf("删除的是第%d个学生",i);

}


/**********************main函数***************************/
void printChoice()
{
    printf("\n请选择功能:\n");

    printf("\t1.查找\n");
    printf("\t2.插入\n");
    printf("\t3.删除\n");
    printf("\t4.打印\n");
}


int main()
{
    SeqList *L=init_SeqList();
    int choice=-1;
   
    while(1)
    {
        printChoice();
        scanf("%d",&choice);
        
        switch(choice)
        {
            case 1:
                   find(L);
                   break;
            case 2:Insert(L);
                    break;
            case 3:
                   Delete(L);
                   break;      
            default:
                   printf("输入错误");
                      break;
        }
    }
}
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: compare include return 图片 知识 
2017-03-10 20:10
快速回复:问题求助 初学数据结构 有好多知识不会 求助大神帮我看一下我的代码 问 ...
数据加载中...
 
   



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

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