当前位置:首页 >> IT/计算机 >>

链表 实例


// list.cpp : // #include "stdafx.h"

struct node//定义链表节点数据结构 { int data; struct node * pnext; }; class list { public: struct node* phead;//定义一个变量,用于存放第一个节点 public: list(int a[],int k); void insert(int value,int pos); int getlenth(); void print(); void sort(); int deleteitem(int pos); }; int list::getlenth()//获取链表长度 { struct node* pl=phead; int i=0; while(pl!=NULL) { pl=pl->pnext; i++; } return i; } void list::insert(int value,int pos=0)//在某位置插入某值 { struct node* pinsert=new node; struct node* previous=new node; if(pos==0) { pinsert->data=value; pinsert->pnext=phead; phead=pinsert; } else { int j=1; previous=phead; while(j<pos) { previous=previous->pnext;

j++; } pinsert->data=value; pinsert->pnext=previous->pnext; previous->pnext=pinsert; } } int list::deleteitem(int pos)/删除某节点 { struct node* ppos=phead; struct node* ppos1=phead; int i=0; while(i<pos) { ppos=ppos1; ppos1=ppos1->pnext; i++; } ppos->pnext=ppos1->pnext; delete ppos1; return 1; } list::list(int a[],int k)//用一个数组初始化链表 { phead=NULL; for(int i=0;i<k;i++) { struct node* pin=new node; pin->data=a[k-i-1]; pin->pnext=phead; phead=pin; } } void list::print()/打印链表 { int length=getlenth(); struct node* ptr=phead; for(int i=0;i<length;i++) { printf("%d\t",ptr->data); ptr=ptr->pnext; } } void list::sort()//排序链表 { int length=getlenth(); struct node* ptr=new node; ptr=phead; for(int k=length-1;k>0;k--) {

for(int i=0;i<k;i++)//链表操作从头到位,所以采用正向冒泡 { if(ptr->data>ptr->pnext->data) { int tmp=ptr->data; ptr->data=ptr->pnext->data; ptr->pnext->data=tmp; } ptr=ptr->pnext; } ptr=phead; } } int _tmain(int argc, _TCHAR* argv[])//主函数测试 { int a[5]={3,5,6,8,1}; list list1(a,5); printf("链表初始化为:\n"); list1.print(); printf("\插入值后为:\n"); list1.insert(999); list1.insert(33,3); list1.print(); printf("\n删除值后为:\n"); list1.deleteitem(2); list1.print(); printf("\n排序后为:\n"); list1.sort(); list1.print(); return 0; }


相关文章:
链表操作实例
实现单项链表的数据删除、插入、排序等功能 ***/ #include <stdio.h> #include "windows.h" #include "malloc.h" #define LEN sizeof(struct student) ...
数据结构链表实例
数据结构链表实例链表基础操作#include<stdio.h> #include<malloc.h> #include<stdlib.h> #include<string.h> #define TRUE 1; #define FALSE 0; typedef ...
C语言链表的操作实例
关于C 语言链表的操作实例 有这样一个结构体 char team//队伍名 int jifen//积分 int win//胜利场数 int lost//失利场数 现在有 N 个队伍,想把一个队伍...
单向链表经典例子1
链表链表隐藏>> 单向链表经典示例 1.#include "stdio.h" 2.#include "malloc.h" 3.#include "stdlib.h" //定义一个链表的数据的类型 4.struct Node 5.{...
结构体链表--例题
结构体链表--例题_理化生_高中教育_教育专区。c语言结构体链表例题结构体链表 struct student { int num; char name[10]; int age; struct student * next; ...
链表的一个实例
链表 实例 3页 免费 双向循环链表使用实例 3页 免费链​表​的​一​个​实​ 暂无评价|0人阅读|0次下载|举报文档 链​表​的​一​个...
更新企业用的通用单链表操作实例代码
更新企业用的通用单链表操作实例代码_计算机软件及应用_IT/计算机_专业资料。更新企业用的通用单链表操作实例代码 目的:1、帮助大家对单链表的创建、增、删、改、...
单链表应用示例
链表应用示例_IT/计算机_专业资料。学生成绩管理 以单链表作为存储结构,设计和实现某班某门课程成绩管理的完整程序。程序要求完 成如下功能: (1)创建成绩链表,...
C++之数据结构链表分类与实例分析
C++之数据结构链表分类与实例分析 C++之数据结构链表分类与实例分析一、 链表数据结构简介 链表是一种常用的组织有序数据的数据结构, 它通过指针将一系列数据节点...
linux 链表操作示例
linux 链表操作示例 包括全部链表操作,清楚简单!包括全部链表操作,清楚简单!隐藏>> #include<stdio.h> #include<stdlib.h> #include<conio.h> /*定义结构体*/...
更多相关标签: