#include<stdio.h>
#include<string.h>
#include<iomanip>
#define OK 1
#define ERROR 0
#define OVERLOW -2
using namespace std;
typedef struct{
char no[20];
char name[100];
float price;
}Book;
typedef struct LNode{
Book data;
int length;
struct LNode *next;
}LNode,*LinkList;
int Init_L(LinkList &L){
L=new LNode;
L->length=0;
return OK;
}
int Input(LinkList &L){
char no[20];
char name[100];
float price;
LinkList r=L;
while(1){
scanf("%s %s %f",&no,&name,&price);
if(strcmp(no,"0")==0&&strcmp(name,"0")==0&&price==0){
break;
}
LinkList p=new LNode;
strcpy(p->data.no,no);
strcpy(p->data.name,name);
p->data.price=price;
p->length++; //尾插法
// p->next=NULL;
// r->next=p;
// r=p;
p->next=L->next; //头插法
L->next=p;
L->length++;
}
return OK;
}
int Output(LinkList L){
printf("%d\n",L->length);
LinkList p=L->next;
while(p){
printf("%s\t""%s""%.2lf\n",p->data.no,p->data.name,p->data.price);
p=p->next;
}
return OK;
}
int main(int argc,char**argv){
LinkList L;
Init_L(L);
Input(L);
Output(L);
return 0;
}
单链表的基本操作
于 2024-04-08 23:09:55 首次发布