回 帖 发 新 帖 刷新版面

主题:请教数据结构问题

1、设某带头结点的单链表的结点结构说明如下:
   typedef struct node1
     {
       int data;
       struct node1 *next
     }node;
试设计一个算法int count(node *head)计算该单链表中数据域data的值为m的结点个数。设单链表的头指针为head。

2、编写一个算法,它可以借助栈(也可以调用栈的基本运算)来实现单链表上的逆置运算。

3、已知两个单向链表A=(a,b,......,c);B=(d,e,......,f),设计算法void MergeList(LinkList &A,LinkList B),实现将两个链表合并为一个单向链表A=(d,e,.....,f,c,.....,b,a),其中A,B为两个链表的表头指针,小写字母为表中元素。
void MergrList(LIstList &A,LinkList B)


}

回复列表 (共1个回复)

沙发

第一题:
int m_length(node *l)
{
 node *p=l->next;
 int i=0;
 while(p!=NULL)
    {
     if(p->data==m)i++;
     p=p->next;
    }
 return i;
}
第二题:
 negalist(node *l)/*逆置链表*/
{node *p=l,*q;
 q=(struct node1 *)malloc(sizeof(struct node1));
 q->next=p->next;
 p->next=NULL;
 while(q->next)
    {listinsert(l,1,q->next->data);//插入函数在严慰敏版的教科书上有
     q=q->next;}
 free(q);
 }
第三题在书上也有

我来回复

您尚未登录,请登录后再回复。点此登录或注册