python通讯录管理系统系统分析_通讯录管理系统的设计与实现

//实现通讯录结点的输出*/

LinkList CreateList(void) //尾插法建立带头结点的通讯录链表算法

{

LinkList head=(ListNode *)malloc(sizeof(ListNode)); //申请头结点

ListNode *p,*rear;

char flag='y'; //结束标志置y

rear=head; //尾指针初始指向头结点

while (flag=='y')

{

p=(ListNode *)malloc(sizeof(ListNode)); //申新结点

printf("编号 姓名 性别 电话 地址 \n");

printf("-----------------------------------------------\n");

printf("输入的编号:\n");

scanf("%s",p->data.number);

printf("输入的姓名:\n");

scanf("%s",p->data.name);

printf("输入性别:\n");

scanf("%s",p->data.sex);

printf("输入电话:\n");

scanf("%s",p->data.telephone);

printf("输入地址:\n");

scanf("%s",p->data.address);

rear->next=p; //新结点连接到尾结点之后

rear=p; //尾指针指向新结点

printf("继续建表?(y/n):");

scanf("%s",&flag);

}

rear->next=NULL; //终端结点指针置空

return head; //返回链表头指针

}

void InsertNode(LinkList head,ListNode *p)//在通讯录链表head中插入结点

{

ListNode *p1,*p2;

p1=head;

p2=p1->next;

while(p2!=NULL && strcmp(p2->data.number,p->data.number)<0)

{

p1=p2; //p1指向刚访问过的结点

p2=p2->next; //p2指向表的下一个结点

}

p1->next=p; //插入p所指向的结点

p->next=p2; //连接表中剩余的结点

}

//新增通信录排序模块,排序比较简单,通过不断比较,结点指针相互赋值交换解决

void OrderList(ListNode *&l)//按编号排序,调用插入函数之后才可以排序

{

ListNode *p,*q,*s;

q=head;

p=q->next->next;

q->next->next=NULL;

while(p)

{

while(q->next&&(strcmp(p->data.number,q->next->data.number)>0))//比较字符串

q=q->next;

s=p->next;

p->next=q->next;

q->next=p;

p=s;

q=head;

}

}

ListNode *ListFind(LinkList head) //有序通讯录链表的查找

{

ListNode *p;

char number[10];

char name[20];

char t;

printf("----------------\n");

printf(" 1. 按编号 \n");

printf(" 2. 按姓名 \n");

printf("----------------\n");

printf("请 选 择1/2: ");

p=head->next; //假定通讯录表带有结点

scanf("%d",&t);

if (t==1)

{

printf("请输入所求的编号:");

scanf("%s",number);

while(p && strcmp(p->data.number,number)<0)//优化的地方

p=p->next;

if(p==NULL || strcmp(p->data.number,number)>0)

p=NULL; //没有查到要查找的通讯者

}

else

if (t==2)

{

printf(" 请输入要求的姓名:");

scanf("%s",name);

while(p&&strcmp(p->data.name,name)!=0)

p=p->next;

}

return p;

}

void DeleteNode(LinkList head) //通

你可能感兴趣的:(python通讯录管理系统系统分析_通讯录管理系统的设计与实现)