双向链表

来源:百度知道 编辑:UC知道 时间:2024/05/12 06:44:52
线性表的基本操作:初始化、插入、删除、取数据元素等运算在双向链表存储结构上的程序设计方法任选一个。
实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 认真阅读和掌握本实验给出的程序。
(3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
(5) 按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果
要做两个啊,写啦

#include <stdio.h>
typedef struct Link/*双向链表结构体*/
{
int data;
struct Link *lift;
struct Link *right;
}linkx,*linky;
linky Init();/*建立双向链表*/
void PrLink(linky p);/*输出双向链表*/
linky Sort(linky head);/*对双向链表排序*/
linky Swap(linky head,linky one,linky two);/*任意交换双向链表两个结点的地址*/
void main(void)
{
linky head;
head=Init();
head=Sort(head);
PrLink(head);
}
linky Init()/*建立链表*/
{
linky p,q,head;
int n=0;
head=p=q=(linky)malloc(sizeof(linkx));
clrscr();
printf("please input 10 num: ");
scanf("%d",&p->data);/*输入数据*/
head->lift=NULL;
n++;
while(n!=10)/*一直输入到规定的数字个数停止*/
{
q=p;
p=(linky)malloc(sizeof(linkx));
scanf("%d",&p->data);/*输入数据*/
q->right=p;
p->lift=q;
n++;
}
p->right=NULL;
return(head);
}
linky Swap(linky head,