使用C语言带有单链表编写一个管理系统

要求:
可以对数据进行增删改查
可以进行排序
最好可以标记出每一块代码的意思

参考一下吧!
#include<stdlib.h>
#include<stdio.h>
typedef struct LNode{
int num;
struct LNode *next;
}LNode,*linklist;
void Insertlist(linklist &L,int e) /*L为已知有序递增链表,在L的适当位置插入p,使得L保持有序性*/
{
linklist p1,q,p2;
p1=(linklist)malloc(sizeof(LNode));
p1->num=e;
if(L->next) /*判断链表L是否为空链表*/
{
q=L->next;/*将L第一个元素地址给q*/
p2=L;
while(q->next&&q->num<p1->num)/*若q不是最后一个节点,且q的值小于p的值则q后移一位*/
{ p2=q;
q=q->next;
}
if(q->num>=p1->num) /*查找插入位置*/
{ p1->next=q;
p2->next=p1;
}
else
{ q->next=p1;
p1->next=NULL;
} /*插入节点*/
}
else
{ L->next=p1;
p1->next=NULL;
}
}

void createlist(linklist &L)/*创建带头结点的有序链表*/
{ int i,m,k;
L=(linklist)malloc(sizeof(LNode));
L->next=NULL;
printf("请输入链表的长度:");
scanf("%d",&m);
printf("请输入数据: "); /*建立一个带头节点单链表*/
for(i=0;i<m;i++)
{ scanf("%d",&k); /*输入数据*/
Insertlist(L,k); /*调用插入函数,将新生成的节点插入链表中*/
}
printf("\n");
}
void turnback(linklist &L) /*链表的逆置*/
{
linklist p,q;
p=L->next; /*p指向第一个元素*/
L->next=NULL;
while(p)
{
q=p->next;
p->next=L->next;
L->next=p;
p=q;
}
}

void mergelist(linklist &L1,linklist L2) /*合并L1,L2两个链表,用的地址L1作为新链表地址返回*/
{ linklist p1,p2,p3,p4;
p1=L1->next;
p2=L2->next;
p3=L1;
while(p1&&p2)
{ if(p1->num<=p2->num) /*若p1的值小于或等于p2的值,则帕p1\p3同时后移*/
{ p3=p1;
p1=p1->next;
}
else /*若p1的值大于p2的值,则p1前插入p2,p2和p3后移*/
{ p4=p2->next;
p2->next=p1;
p3->next=p2;
p3=p2;
p2=p4;
}
}
p3->next=p1?p1:p2; /*插入剩余段*/
free(L2); /*释放L2的头节点*/
}
void printlist(linklist L) /*打印已知链表*/
{ linklist p;
p=L->next;
while(p)
{ printf("%5d",p->num); /*输出数据*/
p=p->next;
}
printf("\n");
}

void main(){
linklist L1,L2;
printf("创建有序链表L1\n");
createlist(L1);
printf("单链表L1为:");
printlist(L1);
printf("创建有序链表L2:\n");
createlist(L2);
printf("L2链表为:");
printlist(L2);
mergelist(L1,L2); //调用合并两个链表的函数
printf("合并两个单链表后新的链表为:\nnum score\n");
printlist(L1);
printf("递减排序:");
turnback(L1);
printlist(L1);
}追问

额·······是创建管理系统额

追答

我错了,不好意思!

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言设计一个学生学籍管理系统,要求文件形式保存,且用到链表
char filename[] = "D:\\\\编程学习\\\\编程实践\\\\c语言课程设计1 学生信息管理\\\\data.txt"; \/\/文件名,此处为简化编程,采用固定地址名称,未作输入 FILE *fp; pstu head,ptr; \/\/创建带表头结点的空单链表head,用来存放载入信息 head = (pstu)malloc(SIZE); ptr = head; ptr->next = NULL; \/\/加载d...

c语言超市商品管理系统,要有商品的录取查找删除添加等功能。用链表实现...
有个以前练习写的。\/\/利用单链表编写一个学生成绩系统。(具有查询成绩、修改成绩、删除成绩、添加成绩、全班平均等功能。)include<stdio.h> include<stdlib.h> include<string.h> define MAXSIZE 100 typedef char nametype;typedef float gradetype;typedef struct node{ nametype name[MAXSIZE];grad...

求一个用c语言链表与文件编写的图书管理系统或者学生信息系统代码加流程...
filename);return;}if(num_

求一个只用c语言编写的仓库管理系统
include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>#define max 32int ifempty=0;\/\/标志,判断链表是无否为空typedef struct dnode \/* 定义双向链表结构体 *\/ {int number; \/* 货物编号 *\/char name[max]; \/* 货物名称 *\/ int counter; \/* 货物数量 *\/struct d...

编程如何用C语言编写一个学生成绩管理系统程序
max=head;p1=head;\/*重新使max,p指向链表头*\/} p2->next=NULL;\/*链表结尾*\/ printf("输入的学生数为:%d个!\\n",n); return(head);}score *add(score *head,score *stu)\/*函数add,功能:追加学生资料,并且将所有学生资料按学号排序*\/{score *p0,*p1,*p2,*p3,*max; int i,j;float fen; char...

C语言项目 图书信息管理系统
系统主要功能包括用户管理、图书管理、读者管理以及图书流通管理,具体功能通过初始化、插入、删除、查询等操作实现。数据结构方面,采用单链表和顺序表进行操作,通过宏定义优化实现。算法实现包括初始化链表、尾插法插入、删除节点、回调链表和查询等操作。在实际操作中,利用用户信息和用户管理分模块进行,如...

C语言学生成绩管理系统
" 1. Enter list", \/*输入记录*\/ " 2. Delete a record from list", \/*从表中删除记录*\/ " 3. print list ", \/*显示单链表中所有记录*\/ " 4. Search record on name", \/*按照姓名查找记录*\/ " 5. Save the file", \/*将单链表中记录保存到文件中*\/ " 6. Load the file", \/*从文件...

用C语言编写学生管理系统界面
\/*建立链表表头*\/ void CreateHeadLink(void) {STUDENT *p; p=(STUDENT*)malloc(sizeof(STUDENT)); headLink=p; p->next=NULL; } \/*申请一个新结点,并将其初始化*\/ STUDENT *MallocNode(void) { STUDENT *p; int i; p=(STUDENT*)malloc(sizeof(STUDENT)); if(p==NULL) return NULL; for(i=0...

用C语言写学生成绩管理系统基本功能:1、 输入一个班级的学生基本信息...
case 1 : head=Create_Stu_Doc;break;default:printf("\\n无效选项!");} } struct stud_node*Create_Stu_Doc()\/\/新建链表 { int y,age;long int ID,dormnumber,phonenumber;char name[15],sex;int size=sizeof(struct stud_node);struct stud_node*head,*tail,*p;FILE *fp=NULL;\/\/定义...

用C语言编写一个学生管理系统。
用C语言编写一个学生管理系统。实验要求1、总体要求:系统功能齐全,运行结果正确,用户界面友好,使用简单方便。2、系统数据要求:学生信息如下:学号、姓名、年龄、所在系、3门课程名称及成绩、总分、平均分。3、... 实验要求1、总体要求:系统功能齐全,运行结果正确,用户界面友好,使用简单方便。 2、系统数据要求:学生...

相似回答