// 殷人昆双向链表c第2版51页.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//2024-10-8---感受编程的技巧和乐趣#include <iostream>typedef int datatype;
using namespace std;
typedef struct node {datatype data;int freq;struct node* rLink, * lLink;
}dblnode,*dblist;
void createR(dblist& first, datatype a[], int m)
{first = (dblist)malloc(sizeof(dblnode));//create head 节点first->lLink = first->rLink = first;//initalizedblnode* s, * q, * rear = first;for (int i = 0; i < m; i++){s = (dblist)malloc(sizeof(dblnode));s->data = a[i];//相当于双向循环链表的插入q = rear->rLink; s->lLink = rear; q->lLink = s;//前驱方向链接s->rLink = q; rear->rLink = s; rear = s;//后继方向链接//借助指针q记录rear的后继地址,避免断链}
}
void printlist(dblist first)
{dblist p;p = first->rLink;while (p != first){cout << p->