#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<string.h>
#include <sqlite3.h>
#define len sizeof(struct Node)
#define ERROR 1
#define OK 0
void inquire_nocb(sqlite3 *db);
void inquire_usecb(sqlite3 * db);
struct Node
{
char name[30];
char data[30];
struct Node *next;
};
typedef struct Node LinkList; /* 定义LinkList */
/* 初始化顺序线性表生成一个头
返回head */
LinkList * InitList()
{
LinkList *head;
head=(LinkList *)malloc(len); /* 产生头结点,并使L指向此头结点 */
if(head==NULL) /* 存储分配失败 */
printf("malloc is not good");
head->next=NULL; /* 指针域为空 */
return head;
}
/*数据的输出打印*/
void print(LinkList *head)
{
LinkList *p;
p=head->next;
if(p==NULL)
printf("this is empty\n");
while(p!=NULL)
{
printf("姓名: %-10s 号码: %-10s\n",p->name,p->data);
p=p->next;
}
}
/* 初始化后 数据添加 采用(头插法) */
LinkList * CreateListHead(LinkList *head)
{
printf("*表示输入结束\n");
LinkList *p;
int i;
//head = (LinkList *)malloc(len);
//head->next = NULL; /* 先建立一个带头结点的单链表 */
//p=head->next;//
while(1)
{
p = (LinkList *)malloc(len); /* 生成新结点 */
printf("请输入姓名:\n");
scanf("%s",p->name);
if(strcmp(p->name,"*") == 0)
break;
printf("请输入号码:\n");
scanf("%s",&p->data);
p->next = head->next;
head->next = p; /* 插入到表头 */
}
return head;
}
/* 删除 */
/* 操作结果:输入要删除的 元素 进行删除 */
LinkList * ListDelete(LinkList *head)
{
LinkList *pre,*after,*p;
p=(LinkList *)malloc(len);//插入时申请空间
printf("请输入要删除姓名:\n");
scanf("%s",p->name);
pre = head;
after=head->next;
while(after != NULL)
{
if(strcmp(after->name,p->name)==0)
{
pre->next=after->next;
free(after);
break;
}
else
{
pre=after;
after=after->next;//错误地点
}
}
if(after == NULL)
printf("this data is not exist\n");
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<string.h>
#include <sqlite3.h>
#define len sizeof(struct Node)
#define ERROR 1
#define OK 0
void inquire_nocb(sqlite3 *db);
void inquire_usecb(sqlite3 * db);
struct Node
{
char name[30];
char data[30];
struct Node *next;
};
typedef struct Node LinkList; /* 定义LinkList */
/* 初始化顺序线性表生成一个头
返回head */
LinkList * InitList()
{
LinkList *head;
head=(LinkList *)malloc(len); /* 产生头结点,并使L指向此头结点 */
if(head==NULL) /* 存储分配失败 */
printf("malloc is not good");
head->next=NULL; /* 指针域为空 */
return head;
}
/*数据的输出打印*/
void print(LinkList *head)
{
LinkList *p;
p=head->next;
if(p==NULL)
printf("this is empty\n");
while(p!=NULL)
{
printf("姓名: %-10s 号码: %-10s\n",p->name,p->data);
p=p->next;
}
}
/* 初始化后 数据添加 采用(头插法) */
LinkList * CreateListHead(LinkList *head)
{
printf("*表示输入结束\n");
LinkList *p;
int i;
//head = (LinkList *)malloc(len);
//head->next = NULL; /* 先建立一个带头结点的单链表 */
//p=head->next;//
while(1)
{
p = (LinkList *)malloc(len); /* 生成新结点 */
printf("请输入姓名:\n");
scanf("%s",p->name);
if(strcmp(p->name,"*") == 0)
break;
printf("请输入号码:\n");
scanf("%s",&p->data);
p->next = head->next;
head->next = p; /* 插入到表头 */
}
return head;
}
/* 删除 */
/* 操作结果:输入要删除的 元素 进行删除 */
LinkList * ListDelete(LinkList *head)
{
LinkList *pre,*after,*p;
p=(LinkList *)malloc(len);//插入时申请空间
printf("请输入要删除姓名:\n");
scanf("%s",p->name);
pre = head;
after=head->next;
while(after != NULL)
{
if(strcmp(after->name,p->name)==0)
{
pre->next=after->next;
free(after);
break;
}
else
{
pre=after;
after=after->next;//错误地点
}
}
if(after == NULL)
printf("this data is not exist\n");