c语言链表的插入程序,C语言 最简单的链表插入

#include

#include

typedef struct {

int num;

char name[80];

char sex[2];

int age;

int score;

} Student;

typedef struct {

Student students[7];

int length;

} StudentList;

void InsertStudent(StudentList *studentList, Student student, int i) {

if (studentList->length == 7) {

printf("there is no more capacity!\n");

return;

}

if (i < 1 || i > studentList->length + 1) {

printf("invalid insert position!\n");

return;

}

int j = 0;

for (j = studentList->length; j >= i; j--) {

studentList->students[j] = studentList->students[j - 1];

}

studentList->students[i - 1] = student;

studentList->length++;

}

void DeleteStudent(StudentList *studentList, int i) {

if (i < 1 || i > studentList->length) {

printf("invalid insert position!\n");

return;

}

int j = 0;

for (j = i; j <= studentList->length; j++) {

studentList->students[j - 1] = studentList->students[j];

}

studentList->length--;

}

int LocateStudents(StudentList *studentList, int num) {

int i = 0;

while (i < studentList->length && studentList->students[i].num != num) {

i++;

}

if (i < studentList->length)

return i + 1;

else

return 0;

}

void display(StudentList *studentList) {

int i = 0;

for (i = 0; i < studentList->length; i++) {

printf("num=%d,name=%s,age=%d,score=%d,sex=%s\n",

studentList->students[i].num, studentList->students[i].name,

studentList->students[i].age, studentList->students[i].score,

studentList->students[i].sex);

}

}

int main(void) {

StudentList studentList;

studentList.length = 0; //给变量赋值时才会分配内存

Student student1 = { 1, "zhangrenyang1", "m", 1, 1 };

Student student2 = { 2, "zhangrenyang2", "m", 2, 2 };

Student student3 = { 3, "zhangrenyang3", "m", 3, 3 };

Student student4 = { 4, "zhangrenyang4", "m", 4, 4 };

Student student5 = { 5, "zhangrenyang5", "m", 5, 5 };

Student student6 = { 6, "zhangrenyang6", "m", 6, 6 };

Student student7 = { 7, "zhangrenyang7", "m", 7, 7 };

Student student8 = { 8, "zhangrenyang8", "m", 8, 8 };

InsertStudent(&studentList, student1, 1);

InsertStudent(&studentList, student2, 2);

InsertStudent(&studentList, student3, 3);

InsertStudent(&studentList, student4, 4);

InsertStudent(&studentList, student5, 5);

InsertStudent(&studentList, student6, 6);

InsertStudent(&studentList, student7, 7);

InsertStudent(&studentList, student8, 8);

display(&studentList);

printf("=============================================\n");

DeleteStudent(&studentList, 3);

display(&studentList);

printf("=============================================\n");

printf("the index of 5 is %d\n",LocateStudents(&studentList, 5));

return 0;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值