数据结构中循环双向链表问题~帮忙看看该怎么改正确~~~

来源:百度知道 编辑:UC知道 时间:2024/06/17 01:41:45
1.将一个二维数组产生一个线性表,数组为:
Data[2][Max]={{3,9,25,5,7,26,65,80,2,6},
{1050,3850,1000,5670,2250,9650,2380,1700,3000,2000}},其中第一行为位序,第二行为对应的元素。
2.编一个int List_Search(int Key,Link Head)函数,在以Head为头结点的链表中找位序为Key的元素,并将它打印,记录位序在链表中的位置。
3.编一个释放结点的函数。
4.编主程序,完成如下功能:输入一个非0整数(如7),则输出7对应的元素2250,并将7在链表中的位置5输出;当输入的位序在数组构成的链表中不存在时,输出“no found”;当输入0时,释放所有内存空间。
#include<stdio.h>
#include<stdlib.h>
#define NULL 0

struct list
{
int Number;
int Data;
struct list* prior;
struct list* next;

};
typedef struct list dulnode;
typedef dulnode* link;

link mylist(link aa)
{
int Data[2][10]={{3,9,25,5,7,26,65,80,2,6},{1050,3850,1000,5670,2250,9650,2380,1700,3000,2000}};
link pa=aa;
for(int i=0;i<10;i++)
{
link p=aa;
p=(link)malloc(sizeof(dulnode));
p->Number=Data[0][i];
p->Data=Data[1][i];
//p->next->prior=

#include<stdio.h>
#include<stdlib.h>
#define NULL 0

struct list
{
int Number;
int Data;
struct list* prior;
struct list* next;

};
typedef struct list dulnode;
typedef dulnode* link;

link mylist(link head)
{
int Data[2][10]={{3,9,25,5,7,26,65,80,2,6},{1050,3850,1000,5670,2250,9650,2380,1700,3000,2000}};
//link pa=head;
head->Number=Data[0][0];
head->Data=Data[1][0];
link p=head;
for(int i=1;i<10;i++)
{
p->next=(link)malloc(sizeof(dulnode));
p->next->prior=p;
p=p->next;
p->Number=Data[0][i];
p->Data=Data[1][i];
//p->next->prior=p->prior->next=p;
//pa->next=p;p->prior=pa;
//pa->next->prior=p;p->next=pa->next;
//p=p->next;
}
p->next=head;
head->prior=p;

p=head;
for(