当前位置: 代码迷 >> 数据结构与算法 >> 初学,关于链表的有关问题!赐教
??详细解决方案

初学,关于链表的有关问题!赐教

热度:1421???发布时间:2016-05-23 09:15:07.0
初学,关于链表的问题!大虾赐教!
小弟初学数据结构,以下是一个修改错误的程序,
当选择1建立表的时候,为什么num或者sex等跟规定的字符相同时候,就会把后面的
一同归并到前面的变量呢?
比如输入1,num=0001,name=li,sex=boy,phone=123456,addr=china,
输出为什么是 ? 0001,li,boy123456,123456,china呢??
很迷惑,请大虾不吝赐教!谢过了!
还有,这个程序还有其他的毛病吗?
初学,请大家赐教!
以下是源代码:


#define ? NULL ? 0
#include ? "stdio.h "
#include ? "string.h "
#include ? "stdlib.h "
#include ? "malloc.h "
typedef ? struct ? ? {
? ? char ? num[6];
? ? char ? name[10];
? ? char ? sex[5];
? ? char ? phone[15];
? ? char ? addr[32];
} ? DataType;
typedef ? struct ? node ? {
? ? ? DataType ? data;
? ? ? struct ? node ? *next;
} ? ListNode;
typedef ? ListNode ? *LinkList;
LinkList ? head;
ListNode ? *p;
int ? menu_select();
LinkList ? CreateList(void);
void ? InsertNode(LinkList ? head,ListNode ? *p);
ListNode ? *ListFind(LinkList ? head);
void ? DelNode(LinkList ? head);
void ? printList(LinkList ? head);
void ? main()
{
? ? for( ? ; ? ; ? ){
switch(menu_select( ? ) ? )
{
? ? case ? 1:
? ? ? ? ? ? printf( "**********************************\n ");
? ? ? ? ? ? printf( "* ? ? linklist ? create ? ? ? ? *\n ");
? ? ? ? ? ? printf( "**********************************\n ");
? ? ? ? ? ? head=CreateList( ? );
? ? ? ? ? ? break;
? ? ? ? case ? 2:
? ? ? ? ? ? printf( "**********************************\n ");
? ? ? ? ? ? printf( "* ? ? add ? ? ? *\n ");
? ? ? ? ? ? printf( "**********************************\n ");
? ? ? ? ? ? printf( "\n ");
? ? ? ? ? ? printf( "************************************* ? \n ");
? ? ? ? ? ? p=(ListNode ? *)malloc(sizeof(ListNode));
? ? ? ? ? ? scanf( "%s%s%s%s%s ",p-> data.num,p-> data.name,p-> data.sex,
? ? ? ? ? ? ? ? ? ? ? ? p-> data.phone,p-> data.addr);
? ? ? ? ? ? InsertNode(head,p);
? ? ? ? ? ? break;
? ? ? ? ? case ? 3:
? ? ? ? ? ? printf( "***********************************\n ");
? ? ? ? ? ? printf( "* ? ? ? search ? ? ? ? *\n ");
? ? ? ? ? ? printf( "***********************************\n ");
? ? ? ? ? ? p=ListFind(head);
? ? ? ? ? ? if ? (p!=NULL) ? {
printf( "\n ");
printf( "--------------------------------------------------\n ");
printf( "%s,%s,%s,%s,%s\n ",p-> data.num,p-> data.name,
? ? ? ? ? ? ? ? p-> data.sex,p-> data.phone,p-> data.addr);
??相关解决方案
本站暂不开放注册!
内测阶段只得通过邀请码进行注册!
?
  • 最近登录:Sat Oct 19 13:51:21 CST 2019
  • 最近登录:Sat Oct 19 13:51:21 CST 2019
  • 最近登录:Sat Oct 19 13:51:21 CST 2019
  • 最近登录:Sat Oct 19 13:51:21 CST 2019
  • 最近登录:Sat Oct 19 13:51:21 CST 2019