赞
踩
(复习考研的休息区,心血来潮,写点代码)
三个规则:
1、不使用c++ stl库进行书写
2、最好基于严蔚敏老师的数据结构
3、最好使用malloc和realloc动态分配内存
(如果有问题或者是有没有实现的操作,请大家提出来)
- // 链表实现
- #include<iostream>
- #include<cstring>
-
- using namespace std;
-
- #define N 100
- #define OK true
- #define ERRORINT 0x3f3f3f3f3f
- #define ERROR false
-
- typedef struct LNode
- {
- // 单链表
- int data;
- struct LNode *ne;
- }LNode , *LinkList;
-
-
- void InitList(LinkList &L)
- {
- L = (LinkList)malloc(sizeof(LNode));
- L -> ne = NULL; // 建立带头节点的单链表
- }
-
- // 头插法
- void HeadInsert(LinkList &L)
- {
- for(int i = 1;i <= 10;i ++)
- {
- LinkList p = (LinkList)malloc(sizeof(LNode));
- p -> data = i;
- p -> ne = L -> ne;
- L -> ne = p;
- }
- }
-
- // 尾插法
- void TailInsert(LinkList &L)
- {
- LinkList now = L;
- for(int i = 1;i <= 10;i ++)
- {
- LinkList p = (LinkList)malloc(sizeof(LNode));
- p -> data = i;
- now -> ne = p;
- now = p;
- }
- now -> ne = NULL;
- }
-
- // 插入到第idx位置
- bool InsertList(LinkList &L , int idx , int e)
- {
- LinkList p = L;
- int i = 0;
- while(p && i < idx - 1)
- {
- p = p -> ne;
- i ++;
- }
- if(!(p -> ne) || i > idx - 1) return ERROR;
-
- cout << "插入数据" << e << endl;
- LinkList s = (LinkList) malloc(sizeof(LNode));
- s -> data = e;
- s -> ne = p -> ne;
- p -> ne = s;
-
- return OK;
- }
-
- // 删除节点
- int DeleteList(LinkList &L , int idx)
- {
- LinkList p = L;
- int i = 0;
- while(p && i < idx - 1)
- {
- p = p -> ne;
- i ++;
- }
- if(!p || i > idx - 1) return ERROR;
- int e = p -> ne -> data;
- cout << "删除节点" << e << endl;
- p -> ne = p -> ne -> ne;
- return e;
- }
-
- void print(LinkList L)
- {
- LinkList p = L;
- cout << "当前链表数据为:";
- p = p -> ne;
- bool f = false;
- while(p)
- {
- if(f) cout << "->";
- cout << p -> data;
- f = true;
- p = p -> ne;
- }
- cout << endl;
- }
-
- int main()
- {
- LinkList L;
- InitList(L);
-
- // HeadInsert(L);
- // print(L)
- TailInsert(L);
- print(L);
-
- InsertList(L , 3 , 11);
- InsertList(L , 5 , 12);
- print(L);
- DeleteList(L , 6);
- DeleteList(L , 3);
- print(L);
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。