2020-08-27

#include<stdio.h>
#include<malloc.h> #include<stdlib.h> #include<string.h> #define OK 1 #define ERROR 0 #define OVERFLOW -2 #includeusing namespace std; typedef int Status; // 定义函数返回值类型 typedef struct { char number[10]; // 学号 char name[20]; // 姓名 double score; // 成绩 }student; typedef student ElemType; typedef struct LNode { ElemType data; // 数据域 struct LNode next; //指针域 }LNode,LinkList; Status InitList(LinkList &L) // 构造空链表 L { L=(struct LNode)malloc(sizeof(struct LNode)); L->next=NULL; return OK; } Status GetElem(LinkList L,int i,ElemType &e) // 访问链表,找到 i位置的数据域,返回给 e { LinkList p; p=L->next; int j=1; while(p&&j<i) { p=p->next; ++j; } if(!p||j>i) return ERROR; e=p->data; return OK; } Status Search(LNode L,char str[],LinkList &p) // 根据名字查找 { p=L.next; while§ { if(strcmp(p->data.name,str)==0) return OK; p=p->next; } return ERROR; } Status ListInsert(LinkList L,int i,ElemType e) // 在 i个位置插入某个学生的信息 { LinkList p,s; p=L; int j=0; while(p&&j<i-1) { p=p->next; ++j; } if(!p||j>i-1) return ERROR; s=(struct LNode)malloc(sizeof(LNode)); s->data=e; s->next=p->next; p->next=s; return OK; } Status ListDelete(LinkList p,int i) // 删除 i位置的学生信息 { int j=0; while((p->next)&&(j<i-1)) { p=p->next; ++j; } if(!(p->next)||(j>i-1)) return ERROR; LinkList q; q=p->next; p->next=q->next; delete q; return OK; } void Input(ElemType *e) { printf(“姓名:”); scanf("%s",e->name); printf(“学号:”); scanf("%s",e->number); printf(“成绩:”); scanf("%d",&e->score); printf(“输入完成\n”); } void Output(ElemType *e) { printf("姓名:%s\n学号:%s\n成绩:%.2lf\n\n## 链表和顺序表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值