|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- // 双向链表的基本操作.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include<time.h>
- #include<iostream>
- using namespace std;
- #define N 5
- typedef struct dulnode
- {
- int data;
- dulnode *prior;
- dulnode *next;
- }dulnode,*dulinklist;
- void createlist(dulinklist &l)
- {
- dulinklist p;
- l = new dulnode;
- l->next = NULL;
- srand((int)(0));
- for (int i = 0; i < N; i++)
- {
- p = new dulnode;
- p->data = rand() % 100;
- p->next = l->next;
- l->next = p;
- }
- }
- void printlist(dulinklist &l)
- {
- dulinklist p = l->next;
- while (p)
- {
- cout << p->data << '\t';
- p = p->next;
- }
- cout << endl;
- }
- dulinklist getelem(dulinklist &l, int i)
- {
- dulinklist p = l->next;
- int j = 1;
- while (p&&j < i)
- {
- p = p->next;
- ++j;
- }
- if (!p&&j>i)
- exit(0);
- return p;
- }
- int listinsert(dulinklist &l, int i, int e)
- {
- dulinklist p,s;
- if (!(p = getelem(l, i)))
- exit(0);
- s = new dulnode;
- s->data = e;
- s->prior = p->prior;
- p->prior->next = s;
- s->next = p;
- p->prior = s;
- return 1;
- }
- int main()
- {
- dulinklist l;
- int e,i;
- createlist(l);
- printlist(l);
- cout << "输入要插入的数:";
- cin >> e;
- cout << "输入要插入的位置:";
- cin >> i;
- listinsert(l, i, e);
- printlist(l);
- return 0;
- }
复制代码 |
|