请教各位,一个链表如何用数据库来存贮

请教各位,一个链表如何用数据库来存贮,第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=headi<=20i++)

{

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)

}

方法如下:

1.头文件:

#include

#include

#include//这个是必需要包含的,下面对mysql的所有 *** 作函数,都出自这里

2.定义一个MYSQL变量:

MYSQLmysql;

这里MYSQL是一个用于连接MySql数据库的变量。

在后面对mysql数据库的 *** 作中,我们就用这个MYSQL变量作为句柄的。

3.定义数据库参数:

charhost[32]=”localhost”

charuser[32]=”username”

charpasswd[32]=”pwd”

chardbname[32]=”testdb”

4.数据库 *** 作

1).初始化数据库:

mysql_init(&mysql);

2).连接数据库:

mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0);

我们在 *** 作时,可以对以上的函数进行if测试,如果初始化或者连接出错,作出相应提示,以便调试。

5.对数据库的 *** 作:

Mysql_query(&mysql,“select*fromtestdbwherecondition”)

我们在实际 *** 作中,为了更方便的使用程序中的某些变量,我们将会用到一个函数:

intsprintf(char*str,constchar*format,?)

这个函数用来格式化我们的字符串,然后将变量按照给你的格式,赋给第一个参数。

我们使用这个方法方法可以很方便的使用我们的变量来对数据库进行 *** 作。例如我们将要进行数据库的查询 *** 作,我们就可以这样使用:

sprintf(sql,”select*fromtestdbwhereusername=‘%s’”,u_name)

然后使用mysql_query(&mysql,sql)进行查询。

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构, *** 作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10026999.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存