//链表建立
Node creat()
{
Node head = NULL, p = NULL, s = NULL;
int Date = 0, cycle = 1;
head = (Node)malloc(sizeof(Node));
if(NULL == head)
{
printf("分配内存失败\r\n");
return NULL;
}
head->pstnext = NULL;
p = head;
while(cycle)
{
printf("请输入数据且当输入数据为0时结束输入\r\n");
scanf("%d", &Date);
if(0 != Date)
按你说的是不能实现的,链表是储存在内存中的,你修改了链表,只能判断链表修改了什么内容再更新到数据库里面,不可能说修改链表就能同时修改了数据库一步完成,除非你修改链表的同时也更新数据库。
#include "stdioh"
#include "stdlibh"
#include "stringh"
typedef struct
{
int num;
char name[10];
int grade;
}student;
typedef struct node
{
student date;
struct node next;
}link;
link head = NULL;
student creat(void)
{
student p;
printf("请输入学生学号:");
setbuf(stdin,(char )0);
scanf("%d",&pnum);
printf("请输入学生名字:");
setbuf(stdin,(char )0);
scanf("%s",pname);
printf("请输入学生成绩:");
setbuf(stdin,(char )0);
scanf("%d",&pgrade);
return p;
}
void insert(student date)
{
link p = (struct node)malloc(sizeof p);
p->date=date;
p->next=head;
head=p;
}
void output(void)
{
link p = head;
printf("|----学号-----姓名-------成绩--|\n");
while(p!=NULL)
{
printf("| %-9d%-11s%-6d|\n",p->datenum,p->datename,p->dategrade);
p=p->next;
}
printf("|------------------------------|\n");
}
void init(void)
{
puts("欢迎使用信息查询系统");
puts("\t+-------------------------+ ");
puts("\t| 1添加记录 | ");
puts("\t| 2显示所有记录 | ");
puts("\t| 0保存退出 | ");
puts("\t+-------------------------+ ");
puts("");
printf("\t请输入您的选择:");
}
int main()
{
int n;
char cmd[10];
do{
//system("cls");
men: init();
setbuf(stdin,(char )0);//清空输入流
scanf("%[^\n]",cmd);//接受除换行以外的所有字符存入cmd中,并加上'\0'标志
sscanf(cmd,"%d",&n);
/处理当命令不符合条件的情况/
if(strlen(cmd) != 1 || n < 0 || n >2 || !(cmd >= '0' && cmd <= '2'))
{
printf("\t输入错误或没有这个选项!");
getchar();
getchar();
goto men;
}
switch(n)
{
case 1:insert(creat());puts("\t添加成功!");break;
case 2:output();break;
case 0: return 0;
default :break;
}
printf("\tPress Enter To Continue!");
getchar();
getchar();
}while(n != 0);
return 0;
}
以上就是关于大家说下怎么把链表里面的数据放到一个数组里面全部的内容,包括:大家说下怎么把链表里面的数据放到一个数组里面、c# 通过链表查询数据库、c语言链表中插入数据问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)