c语言通讯录源代码 链表,C语言版用链表实现通讯录.docx
C语言版用链表实现通讯录“标头.h”#include#include#include#define Len sizeof(Lnode)int seat;//全局变量,用于存储通讯录成员信息typedef struct Lnode{int number; //学号char name[20];//名字double telenum;//电话struct Lnode *next;//定义一个指向下一个节点
C语言版用链表实现通讯录
“标头.h”
#include
#include
#include
#define Len sizeof(Lnode)
int seat;//全局变量,用于存储通讯录成员信息
typedef struct Lnode
{
int number; //学号
char name[20];//名字
double telenum;//电话
struct Lnode *next;//定义一个指向下一个节点的指针
} Lnode,*LinkList;//把struct Lnode*重定义为LinkList
LinkList creatIncreLink();
void deleteElem(LinkList l,int i);
int delName(LinkList l,char name[]);
int delNum(LinkList l,int n);
void insertYouxu(LinkList l,LinkList Elem);
void printList(LinkList l);
LinkList prior(LinkList l,LinkList p);
int searchName(LinkList l,char name[]);
int searchNum(LinkList l,int n);
#include
#include"标头.h"
LinkList creatIncreLink()
{
LinkList p;
int num=1,number;
double telenum;
char name[20],temp;
LinkList L,P;
L=(LinkList)malloc(Len); //创建头结点
L->next = NULL;
printf("请输入学生学号、姓名和电话号码,建立通讯录,以'-1'为输入结果标志\n");
printf("请输入学号 %d:");
scanf("%d",&number);
printf("请输入姓名 %d:");
temp=getchar();
gets(name);
printf("请输入电话号码 %d:");
scanf("%lf",&telenum);
while (number >= 0)
{
p = (LinkList)malloc(Len); //新分配结点
p->number = number;
p->telenum = telenum;
strcpy(p->name,name);
insertYouxu(L,p); //有序地插入新结点
num++;
printf("请输入学号 %d:",&num);
scanf("%d",&number);
printf("请输入姓名 %d:",num);
temp=getchar();
gets(name);
printf("请输入电话号码 %d:",num);
scanf("%lf",&telenum);
}
return(L);
}
void deleteElem(LinkList l,int i) //删除函数
{
LinkList p=l,q;//让p指向l
int j=0;//循环变量j
while(p->next&&j
{
p=p->next;
j++;
}
if(p->next==0) //判断下一个元素是否为空
printf("ERROR");
q=p->next;//将p指向第i个元素
p->next=q->next;//p的next指向q的next
free(q);//释放q链表
}
int delName(LinkList l,char name[])
{
int flag=0;
LinkList p=l->next;
seat=1;
if(l->next==NULL)
pri
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)