链表存数据库
1. 请教各位,一个链表如何用数据库来存贮
#include <stdio.h>
#include <memory>
typedef struct Lnode
{
int data;
Lnode* next;
}Lnode;
Lnode* creatLink()
{
int i;
Lnode *cur,*pre,*head;
head=(Lnode*)malloc(sizeof(Lnode));
for(i=1,pre=head;i<=20;i++)
{
cur=(Lnode*)malloc(sizeof(Lnode));
cur->data=i;
cur->next=NULL;
pre->next=cur;
pre=pre->next;
}
return head;
}
int main()
{
FILE *fp,*fp1;
if((fp=fopen("abc.dat","w"))==NULL)
{
printf("打开.dat有问题!");
return -1;
}
Lnode *root=creatLink();
while(root=root->next)
{
fwrite(root,sizeof(Lnode),1,fp);
}
fclose(fp);
if((fp1=fopen("abc.dat","r"))==NULL)
{
printf("打开abc.dat有问题!");
return -1;
}
Lnode *root1=(Lnode*)malloc(sizeof(Lnode));
while(!feof(fp1))
{
fread(root1,sizeof(Lnode),1,fp1);
printf("%d ",root1->data);
if(root1->next)
root1=root1->next;
}
fclose(fp1);
}
2. 能在数据库中建立链表吗
当然可以了啊
数据库不就是做这作用的啊
不过不同的数据库的外键作法是有些小区别
你用什么数据库啊
MSSQL DB2 OR ORACLE
3. 如何将长链表数据写入数据库
#include <stdio.h>#include <stdlib.h>#include <string.h> typedef struct datanode { char name[24]; char phone[12]; // ...... struct datanode *next;}*pNode,*LinkList,Node; LinkList getEmptyList() { LinkList head = (pNode)malloc(sizeof(Node)); head->next = NULL; return head;} void addNode(LinkList head, pNode pnode) { pnode->next = head->next; head->next = pnode;} void writeFile(LinkList head) { FILE *outf; pNode p = head->next; if((outf = fopen("data.txt","wt")) == NULL) { printf("不能打开数据文件。\n"); exit(1); } while(p) { fwrite(p,sizeof(Node),1,outf); p = p->next; } fclose(outf);} int main() { char name[24],phone[12]; // ...... pNode p; LinkList head = getEmptyList(); printf("姓名 联系电话\n"); while(scanf("%s%s",name,phone) == 2) { p = (pNode)malloc(sizeof(Node)); strcpy(p->name,name); strcpy(p->phone,phone); addNode(head,p); printf("姓名 联系电话(<Ctrl + Z> <ENTER> 结束)\n"); } writeFile(head); return 0;
4. 如何从数据库中向链表中添加数据
直接用命令insert into就行了
5. C语言如何实现数据库中的数据存入链表
从数据库读出数据存放到一个结构体里面,再把结构体扔进链表.搞定.很简单啊.
6. 如何存储链表
#include <stdio.h>
#include <memory>
typedef struct Lnode
{
int data;
Lnode* next;
}Lnode;
Lnode* creatLink()
{
int i;
Lnode *cur,*pre,*head;
head=(Lnode*)malloc(sizeof(Lnode));
for(i=1,pre=head;i<=20;i++)
{
cur=(Lnode*)malloc(sizeof(Lnode));
cur->data=i;
cur->next=NULL;
pre->next=cur;
pre=pre->next;
}
return head;
}
int main()
{
FILE *fp,*fp1;
if((fp=fopen("abc.dat","w"))==NULL)
{
printf("打开abc.dat有问题!");
return -1;
}
Lnode *root=creatLink();
while(root=root->next)
{
fwrite(root,sizeof(Lnode),1,fp);
}
fclose(fp);
if((fp1=fopen("abc.dat","r"))==NULL)
{
printf("打开abc.dat有问题!");
return -1;
}
Lnode *root1=(Lnode*)malloc(sizeof(Lnode));
while(!feof(fp1))
{
fread(root1,sizeof(Lnode),1,fp1);
printf("%d ",root1->data);
if(root1->next)
root1=root1->next;
}
fclose(fp1);
}
7. 请问c语言怎么把写进数据库中的链表再次读入新的链表中
首先,读数据库数据,把各个字段的信息保存在相应类型的变量中
其次,malloc一个链表节点,将第一步中读取的数据赋值给该链表节点
最后,将该节点插入链表中
8. 在C语言中的数据都是怎么存放的链表,文件,数据之间是什么关系
文件基本上你程序中不进行文件操作的话是涉及不到的,链表是一种存储方式,数据是存在内存中来进行调用运算,数据存在链表里是说这些数据之间可以通过“链”来连接,实现访问。
9. c#怎么把线性链表添加到数据库
查一下C#中的对象序列化,将链表序列化为二进制数据后,存入数据库的二进制字段中(比如sql server的blob字段),存入的方法与图像存入blob类似,读取的时候读出数据库二进制字段后,反序列化为链表对象。