问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用C语言建立一个链表实现一个通讯录,

发布网友 发布时间:2022-05-13 15:38

我来回答

1个回答

热心网友 时间:2023-10-14 18:29

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

typedef unsigned long ulong;

typedef struct _list {
char name[16];
char addr[64];
ulong phone;
ulong qq;
struct _list* next;
} *node, list;

/* insert a node */
node Insert( node* head, node pos, list* l )
{
node tmp;
tmp = ( node )malloc( sizeof( list ) );
strcpy( tmp->name, l->name );
strcpy( tmp->addr, l->addr );
tmp->phone = l->phone;
tmp->qq = l->qq;
tmp->next = pos ? pos->next : *head;
if ( pos ) {
pos->next = tmp;
} else {
*head = tmp;
}
return tmp;
}

/* create a list */
node Create( void )
{
node head, t;
list input;
head = t = NULL;
printf( "请按 [姓名] [地址] [家庭电话] [qq] 的顺序输入\n" );
printf( "每行一组数据,输入空行结束:\n" );
while ( 1 ) {
if ( getchar() == '\n' ) break;
scanf( "%s%s%lu%lu", input.name, input.addr, &input.phone, &input.qq );
while ( getchar() != '\n' );
t = Insert( &head, t, &input );
}
return head;
}

/* view list */
void Print( node head )
{
while ( head ) {
printf( "%s\t%s\t%lu\t%lu\n", head->name, head->addr, head->phone, head->qq );
head = head->next;
}
putchar( '\n' );
}

/* merge sort */
node msort( node* head, int n )
{
int i, m;
node l, r, p, *x, *y;
if ( n < 2 ) return *head;
m = n/2;
p = l = r = *head;
for ( i = m; i > 0; --i )
p = r, r = r->next;
p->next = NULL;
l = msort( &l, m );
r = msort( &r, n - m );
x = &p;
while ( l && r ) {
*x = l->qq < r->qq ? (y = &l, l) : (y = &r, r);
*y = (*y)->next; x = &(*x)->next;
}
l = l ? l : r ? r : NULL;
*x = l; *head = p;
return p;
}

/* sort wrapper */
void Sort( node* head )
{
int i;
node tmp = *head;
for ( i = 0; tmp; ++i, tmp = tmp->next );
msort( head, i );
}

int main( void )
{
node head = Create();
printf( "\n链表内容:\n" );
Print( head );
Sort( &head );
printf( "\n排序之后:\n" );
Print( head );
getch();
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
The ___ of the food is very terrible, but it ___ very nice. Worm.Win32.Viking.k病毒描述 IM-Worm.Win32.VB.c清除方案 Worm.Win32.VB.nk 是什么样的蠕虫病毒啊,会怎么样你的电脑啊?_百度知 ... 蠕虫病毒Win32.Womble.C简介 email-worm.win32,vb,bk是什么病毒? Email-Worm.Win32.VB.bk,有谁知道这是什么病毒吗现在有些什么 病毒? Worm.Win32.Viking病毒描述 IM-Worm.Win32.VB.c病毒标签 贵州遵义到甘肃省天水市怎么走方便? 谷丙转氨酶65,肝功能很异常吗? 丙氨酸氨基转移酶是65,还严重啊… 怎么用C语言建立一个链表实现一个通讯录? HFSS仿真过程中停在那里不动是什么原因 安装HFSS 13.0出现问题怎样解决 16G内存,3.2GHZ的I5CPU的台式机XP系统,ansys13.0,计算46万节点,为什么还会出现内存不足?该如何解决? 咸黄瓜的腌制方法是什么? ansys计算内存不足,怎样有好的方法可以解决呢,简单的更好? 常见,女生选择穿人字拖去约会,约会选择穿人字拖有什么好处呢? 卡斯罗犬打猎物怎么样? 三星手机为什么搜索不到蓝牙耳机 卡斯罗犬容易生病吗 几个月的卡斯罗好喂养 卡斯罗犬抵抗力怎么样? 谁养过卡斯罗犬、性格怎么样? 卡斯罗怎么养? 大家觉得卡斯罗怎么样 怎样优化这个jq代码? 鼠标放在小图片上对应下方显示大图 卡斯罗看家怎么样? 卡斯罗智商怎样 谁有好一点的同城异性交友网,推荐一个? 卡斯罗犬性格怎么样,卡斯罗真实性格特点 利用链表设计一个通讯录 车载导航与手机连接还需要下什么? 谷丙转氨酶65算高吗?怎么降低 用链表进行通讯录设计 C语言:用链表写通讯录 一个c++程序。用链表做一个学生通讯录。包括子函数,增加通讯录,删除通讯录,查询通讯录,显示全部通 我在医院做的体检,说我的转氨酶60~65,算高吗,会传染吗?对个人健康有影响吗?高人请指点,万分感谢!!! QQ中的各个业务怎么开啊! 用单链表编写简单的通讯录 C语言数据结构:链表的应用--通讯录管理 今天去无偿献血化验结果说转氨酶偏高达到65了请问这是甚么导致的? C++求用简单链表写一个通讯录管理,要求可以添加、查看、查询、删除 c语言用链表建立通讯录 要求1.能建立,修改和增删学生通讯录 2.能够按多种方式进 您好我家孩子19岁男孩转氨酶高出65,怎么办?怎么引发的 怎么下载车载导航 c语言双向链表通讯录? 我肝功检查转氨酶65,算不算正常?这会传染吗? 用链表编写通讯录 C语言:用链表做通讯录,运行之后发现我只能储存一个联系人 数据结构制作通讯录建立单链表,插入删除,等操作?