用C语言编写一个程序,通过链表的建立、输出、删除、插入等基本操作(链表是带头链表) 50

用C语言编写一个程序,通过链表的建立、输出、删除、插入等基本操作,实现学员成绩管理,从键盘输入学员信息,学员信息用结构体表示,包括学号、姓名、年龄、性别、成绩... 用C语言编写一个程序,通过链表的建立、输出、删除、插入等基本操作,实现学员成绩管理,从键盘输入学员信息,学员信息用结构体表示,包括学号、姓名、年龄、性别、成绩 展开
 我来答
青春之塔
2013-10-15
知道答主
回答量:16
采纳率:0%
帮助的人:10.9万
展开全部
哎,输入就是用循环。。。我写给你看看吧。

int Insertelem(Lnode *q,Stu_rcd e)//q指向插入的前驱节点;输入记录尾插入;
{ Lnode *p;//define
p=(Lnode*)malloc(sizeof(Lnode));
p->elem=e;
p->next=q->next;
q->next=p;
//插入p;
return (OK);
}//返回表头指针

q=&l;l.next=NULL;

printf("按照格式(学号 姓名 成绩)输入记录(结束时输入:## ### 00):\n");
do
{scanf_s("%s %s %d",e.num,10,e.name,20,&e.score);
if(!Insertelem(q,e))printf("error!\n");
q=q->next;
}
while(strcmp(e.num,"##"));

还有就是菜单什么的实现,同学加油吧^_^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天策经纬
2013-10-14
知道答主
回答量:27
采纳率:0%
帮助的人:18万
展开全部
#include <malloc.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>

typedef struct tagNode
{
int data;//这里的data就是指学号,姓名,年龄,性别。成绩等,自己改去
struct tagNode* next;
}Node;

typedef struct tagNode *LinkList;

void CreateList(LinkList *pList,int n)
{
LinkList p;
srand(time(0));

*pList=(LinkList)malloc(sizeof(Node));

(*pList)->next=NULL;

for (int i=0;i<n;i++)
{
p=(LinkList)malloc(sizeof(Node));
p->data=rand()%100;
p->next=(*pList)->next;
(*pList)->next=p;
}
}

void ClearList(LinkList *pList)
{
LinkList p,q;
p=(*pList)->next;

while (p)
{
q=p->next;
free(p);
p=q;
}
(*pList)->next=NULL;
}

int ListInsert(LinkList *pList,int e,int i)
{
LinkList p,s;
p=*pList;

int j=1;
while (p && j<i)
{
p=p->next;
j++;
}

if (!p || j>i)
{
return 0;
}

s=(LinkList)malloc(sizeof(Node));
s->data=e;
s->next=p->next;
p->next=s;
return 1;
}

int ListDelete(LinkList *pList,int i,int *e)
{
LinkList p,q;
p=*pList;

int j=1;
while (p->next && j<i )
{
p=p->next;
j++;
}

if (j>i || !p->next)
{
return 0;
}

q=p->next;

*e=q->data;

p->next=q->next;
free(q);
return 1;
}
bool is_Empty(LinkList *pList)
{
if ((*pList)->next==NULL)
{
return true;
}
return false;
}
void Treaverse(LinkList *pList)
{
LinkList p;
p=(*pList)->next;
while(p)
{
printf("%d \t",p->data);
p=p->next;
}

}
int main(void)
{

return 0;
}
追问
主要是结构体里面的数值怎么从键盘上输入?可以写的具体点吗?
追答
int ListInsert(LinkList *pList,int e,int i)

这个函数就实现了啊,参数里的int e就是要输入的值,
如果要初始化的话可以 调用
void CreateList(LinkList *pList,int n)

链表应该很简单啊,建议找一本数据结构的书看看再去写代码...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式