| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 966 人关注过本帖
标题:小弟有一个问题,关于单链表的
只看楼主 加入收藏
chinaloro
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2014-2-3
收藏
 问题点数:0 回复次数:2 
小弟有一个问题,关于单链表的
题目:函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表A中关键码为key1的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0,否则返回-1,线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。
main函数就是写不下去,求帮助。不是作业,只是私人兴趣。

#include "stdio.h"
#include "stdlib.h"
typedef struct node {
int key;
struct node *next;
}Node,*LinkedList;
int DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)
{
    LinkedList p,q,s,prep,pres;
    int k;
    if(!La->next||!Lb->next||len<=0)
    return -1;
    p=La->next;
    prep=La;
    while(p&&p->key!=key1)
    {
       prep=p;p=p->next;                  
    }
    if(!p)
    return -1;
    q=p;k=1;
    while(q&&k<len)
    {
        q=q->next;k++;         
                   }
    if(!p)
    return -1;
    s=Lb->next;
    pres=Lb;
    while(s&&s->key!=key2)
    {
       pres=s;
       s=s->next;                  
             }
     if(!s)
     return -1;
     pres->next=q->next;
     q->next=s;
     pres->next=p;
     return 0;
    }

int main(void)
{
  int i,k;
  LinkedList head,p,q;
  head=(Node *)malloc(sizeof(Node)); /*创建头结点*/
  head->next=NULL;
  p=head;
  printf("请输入节点数据:");
  scanf("%d",&k);
  while(k!=-1) /*依此建立结点,并插入链表中,遇到-1结束*/
   {
      q=(Node *)malloc(sizeof(Node));
      q->key=k;    /*每个结点的编号*/
      q->next=p->next; /*将结点插入链表*/
      p->next=q;
      p=q;
      scanf("%d",&k);
   }
  for(p=head->next;p!=NULL;p=p->next)  /*将建立的链表节点打印一遍*/
    printf("%d\n ",p->key);
  fflush(stdin);
  getchar();
  return 0;
}
搜索更多相关主题的帖子: include 线性表 私人 
2014-12-10 18:42
chinaloro
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2014-2-3
收藏
得分:0 
2014-12-10 18:44
巧若拙
Rank: 4
来 自:宁波余姚
等 级:业余侠客
威 望:1
帖 子:159
专家分:273
注 册:2014-8-24
收藏
得分:0 
pres->next=q->next;//应改为prep->next=q->next;

另外,while(q&&k<len)
    {
        q=q->next;k++;         
                   }
有问题,因为有可能导致q==NULL。
DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)
不是一个简单的函数,你基本写出来了,不知道为什么却连主函数都不会写,疑惑中。。。。。。
2014-12-10 20:55
快速回复:小弟有一个问题,关于单链表的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027495 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved