数据结构与算法分析
文章平均质量分 75
Elegant_Design
这个作者很懒,什么都没留下…
展开
-
关于单链表的基本操作
#include #include //以下链表均带有头节点;头节点不存放数据,只起到带头作用。typedef struct LNode{ int data; struct LNode *next;}LinkNode;//单链表的建立(倒插入法)LinkNode * CreatList(LinkNode *L,int n){ L=(LinkNode*)malloc(sizeof(LinkNode)原创 2007-09-08 21:40:00 · 1381 阅读 · 0 评论 -
串操作
#include #include #include #include//测串长int StrLength(const char *str) { assert(str); const char*p = str; while(*p++); return p-str-1; } //比较两个串的大小.若str1>str2返回>0,str1==str2返回=0,st1int StrCom原创 2007-09-29 12:19:00 · 1079 阅读 · 0 评论 -
二进制,八进制,十进制,十六进制互相转化的C语言源代码
#include#include#includevoid D_B(int);void D_O(int);void D_X(int);void B_D(int);void B_O(int);void B_X(int);void O_B(int);void O_D(int);void O_X(int);void X_B(char r[],int k);void X_D(char r[],int k);转载 2007-10-18 21:21:00 · 12098 阅读 · 3 评论 -
二叉排序树
1.二叉排序树的概念: 二叉排序树是一种动态树表。 二叉排序树的定义:二叉排序树或者是一棵空树, 或者是一棵具有如下性质的二叉树: ⑴ 若它的左子树非空,则左子树上所有结点的值均小于根结点的值; ⑵ 若它的右子树非空,则右子树上所有结点的值均大于根结点的值; ⑶ 左、右子树本身又各是一棵二叉排序树。二叉排序树的性质: 按中序遍历二叉排序树,所得到的中序遍历序列是一原创 2007-10-16 20:37:00 · 19686 阅读 · 9 评论 -
Array Sort
#include //说明:下面的所有排序,数组arr[n]按照默认:arr[0],arr[1],...,arr[n-1]存放数据,//不存在arr[0]不使用的情况。void bubble_sort(int arr[],int n){ int temp,i,j; for(j=0;j for(i=n-1;i>j;i--) { if(arr[i] { temp=arr[i];原创 2007-09-29 12:58:00 · 1549 阅读 · 0 评论 -
Stack Operator
Simple Stack Template Stack Operator::#include class IStack{ enum {ssize =10}; int s[ssize]; int top;public: IStack():top(0){s[top]=0;} bool Isempty(){ if (top ==0)return true; else return false原创 2007-09-29 12:38:00 · 1066 阅读 · 0 评论 -
判断一个链表是否为循环链表
方法:设两个指针同时指向头节点,一个指针的移动步长为1,另一个指针的移动步长为2,若两个指针能再次相遇,说明该链表为循环链表.说明:若某单链表L只包含头节点head,则head->next==NULL; 若某个循环链表只包含头节点,则head->next=head;bool IsLoopList(LinkNode *L){ LinkNode *p1=L,*p2=L; if(L->原创 2007-09-09 16:12:00 · 2478 阅读 · 1 评论 -
双向循环链表的基本操作
#include #include //以下双向循环链表均带有头节点;头节点不存放数据,只起到带头作用。typedef struct DLLNode{ int data; struct DLLNode *prior; struct DLLNode *next;}DLLinkNode;//双向循环链表的建立(正插入法)DLLinkNode * CreatDLList(DLLinkNode *DLL,原创 2007-09-09 16:03:00 · 4886 阅读 · 0 评论 -
双向链表基本操作
#include #include //以下双向链表均带有头节点;头节点不存放数据,只起到带头作用。typedef struct DLNode{ int data; struct DLNode *prior; struct DLNode *next;}DLinkNode;//双向链表的建立(正插入法)DLinkNode * CreatDList(DLinkNode *DL,int n){ DL=(原创 2007-09-09 15:01:00 · 1987 阅读 · 0 评论 -
Queue Operator
Simple Queue Operator#include #include #include typedef struct student{ int data; struct student *next;}SNode;typedef struct linkqueue{ struct student *front,*rear;}LQueue;bool InitLQueue(LQueue &LQ原创 2007-09-29 12:31:00 · 828 阅读 · 0 评论